Комментарии
В итоге, для реализаций предлагают использовать оптимизацию малых объектов (Small Buffer Optimization/SBO). Но у этого есть и цена. Это делает тип больше — что бы покрыть буфер.

Не делает, для этого используется `union _Storage`. А указатель на функцию надо хранить в любом случае (как минимум для вызова деструктора).

Главное отличие в том, что boost::any не использует SBO, поэтому он занимает значительно меньше памяти

Он занимает меньше памяти, потому что ничего в себе не содержит кроме `placeholder * content;`, который содержит функции (через vtable) и данные.

QVariant будет поудобнее, потому что поддерживает конвертацию типов на лету. Этого не хватает в std::any

Не надо путать статическую и динамическую типизацию. Всё же std::any — статическая типизация.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.