C++11让我们有了使用非POD类型的联合体的可能性,假设我有以下代码:
union
{
T one;
V two;
} uny;
在我的类中,每次只有一个成员处于活动状态,现在我的问题相当简单。
- uny的默认值是什么?- undefined吗?
- 当我的类被销毁时,哪些成员(在联合内),如果有任何成员将被销毁?
- 假设我必须使用std::typeinfo来跟踪哪个成员是活动成员,那么我是否应该在析构函数中显式调用该成员的析构函数?
- 是否有人有链接到语言提案的链接,该提案将联合更改为接受非POD类型?