1
私はPODの構造体を持っていますが、便宜上、std::initializer_list
ctorが必要です。デフォルトctor、copy ctorおよびdtorは暗黙的です。それはinitializer_list
のctorを使用すると、PODなどの構造体を失格しかしようだ、それ故にそれは労働組合の内部ですることはできません。構造体内に `initializer_list` ctorを持つ構造体はありますか?
#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の無制限の組合機能に関連していますか?
うーん... 'A'は、デフォルトコンストラクタを持たないように労働組合のコンストラクタも、それので、' A'を初期化する必要があることを – Potatoswatter