8
C++ 11でこのような構造を有する:C++ 11の適切な構造の初期化
struct von
{
std::string Name;
unsigned int ID;
std::vector<std::string> Checks;
};
は、それが次のように初期化されなければならない:
von v = {"",0,{}};
またはこのような:
von v = {};
を
両方の方法で動作するようですが、コンパイラは後者の例では-Wmissing-field-initializersについて警告します。
編集:ここに私のコンパイラオプションがあります:g ++ main.cpp -ansi -Wall -Wextra -Weff ++ -std = C++ 0x。私はg ++(Debian 4.6.2-12)を使用しています。4.6.2
あなたの例ではイニシャライザリストはなく、リストの初期化のみがあります。最善の方法はvon v {};です。 –
von v {};メンバーのイニシャライザが見つからないという不満もあります。これは、ワイシングフィールド初期化の警告です。 – 01100110
ええ、そうです。自動変数を値を初期化できないのは残念です... 'von v {{}、0、{}};は次善のものです。 –