私はPODである構造体を持っていますが、便宜上、std::initializer_list
ctorが必要です。デフォルトのctor、copy ctor、およびdtorは暗黙的です。initializer_list
ただし、 ctorを使用すると、構造体がPODとして不適格になるため、ユニオン内に含めることはできません。
#include<initializer_list>
struct A{
A(const std::initializer_list<int>&);
};
union{
A a;
} a;
gcc 4.6 --std = c ++ 0x:
error: use of deleted function ‘<anonymous union>::._0()’
error: ‘<anonymous union>::._0()’ is implicitly deleted because the default definition would be ill-formed:
error: no matching function for call to ‘A::A()’
その周りにありますか?これは、c ++ 11の無制限のユニオン機能に関連していますか?