8
有這樣一個結構C++ 11:C++ 11結構合理初始化
struct von
{
std::string Name;
unsigned int ID;
std::vector<std::string> Checks;
};
應該像這樣被初始化:
von v = {"",0,{}};
或者這樣:
von v = {};
這兩種方式似乎都可以工作,但編譯器在後一個示例中警告 - 「忽略字段初始值設定項」。
編輯:這是我的編譯器選項:g ++ main.cpp -ansi -Wall -Wextra -WeffC++ -std = C++ 0x。我正在使用g ++(Debian 4.6.2-12)4.6.2
你的例子中沒有初始化列表,只有列表初始化。最好的辦法可能是'von v {};'。 – 2012-03-04 18:07:53
von v {};也抱怨會員失蹤初始化者。這是一個-Wmissing-field-initializer警告。 – 01100110 2012-03-04 18:21:46
嗯,你說得對。這是一個你無法重視的恥辱 - 初始化一個自動變量......'von v {{},0,{}};'是次好的事情。 – 2012-03-04 18:46:48