С++ 11 дал нам возможность использовать не-POD-типы внутри союзов, например, у меня есть следующий фрагмент кода:
union
{
T one;
V two;
} uny;
Где-то внутри моего класса будет активен только один член, теперь мои вопросы довольно просты.
- Что такое значение uny по умолчанию? - undefined?
- Всякий раз, когда мой класс разрушается, какие члены (внутри союза), если они будут уничтожены?
- Предположим, что мне нужно std:: typeinfo, чтобы отслеживать, кто является активным членом, должен ли я затем вызвать деструктор явно на этом члене в деструкторе?
- Кто-нибудь имеет ссылку на предложение языка, которое изменило союзы на прием не-POD-типов?