[英]C++11 Proper Structure Initialization
在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 -Weffc ++ -std = c ++ 0x。 我正在使用g ++(Debian 4.6.2-12)4.6.2
這根本不需要initializer_list,並且與C ++ 03完全一致。 編輯:(好的,對於矢量的初始化,你需要C ++ 11)在結構或數組初始化中,所有未明確給定的值都是零初始化的,所以如果這是你想要的= {}; 會工作得很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.