一个简单的联合构造函数在被删除时会做什么?
例如:
+
显然,这本身就是一场彻底的灾难,但我希望像这样的对象成为另一个类的私有成员,它将负责初始化相应的对象(s或v)并销毁它。基本上,它是匿名工会建筑,除了必须在这里命名工会。
例如
union Test{
std::string s;
std::vector<int> v;
Test(){}
~Test(){}
};
所以我希望,即使我必须为编译代码定义一个默认构造函数,并且语言会删除类似的构造函数,但我不会导致未定义的行为。我希望对构造进行标准支持的评论。
[以下是外围设备,不是问题:]
(问题的背景是我只有在使用g ++和-flto [链接时间优化]构建时才会出现奇怪的行为,无论优化级别如何(即从-Og到-O3)所以我一直在搜索代码,包括类似于Outer的类,用于任何潜在的问题。)
感谢。