class Foo {
Foo(int val) { /* Do some initialization */ }
Foo() { /* Do nothing */ }
};
union Bar {
Foo foo;
};
该代码生成此错误:
错误 C2620:联合 'Bar' 的成员 'Bar::foo' 具有用户定义的构造函数或非平凡的默认构造函数
我理解如果构造函数确实做了一些事情,为什么你会抛出那个错误,但是这里的构造函数不带参数也不做任何事情。有什么办法可以把这个类塞进一个工会?我不得不求助于所有的方法,char foo[sizeof(Foo)]
并且想要一个更清洁的解决方案。