簡體   English   中英

C ++ 11正確的結構初始化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM