Ответ 1
Нет, очень явно. Из [variant.variant]:
Любой экземпляр
variant
в любой момент времени либо имеет значение одного из его альтернативных типов, либо не имеет значения. Если экземплярvariant
содержит значение альтернативного типаT
, это означает, что значение типаT
, называемое содержащимся в вариантном объекте значением, выделяется в пределах хранилища объектаvariant
. Реализации не разрешено использовать дополнительное хранилище, такое как динамическая память, для размещения содержащегося значения.. Содержащееся значение должно быть выделено в области хранилищаvariant
, подходящей для всех типов вTypes...
. Определяется реализация, поддерживаются ли надстрочные типы.