代碼部分:靜態常量映射初始化列表與struct?
struct id_s {
std::string name1;
std::string name2;
};
static const std::map<uint8_t, id_s> list = {
{ 0x00, { "Fred", "Apple" } },
{ 0x01, { "John", "Banana" } },
{ 0x02, { "Mark", "Mango" } }
};
int main()
{
for(const auto& it: list) {
std::cout<<it.first<<"\t"<<it.second.name1<<"\t"<<it.second.name2<<std::endl;
}
return 0;
}
問題是,一旦初始化所有字段都正確分配,除了「約翰」和「標記」,這是保留爲「」。
如何正確地分配這與C++ 11初始化列表?從2013 VS調試控制檯
輸出:
這是使用初始化列表分配值的正確方法。你能從控制檯顯示你的輸出(屏幕截圖)嗎? –
我已經添加了截圖的鏈接,我無法嵌入信譽不足...... – user3443139
我已驗證此代碼確實的行爲與Visual Studio 2013中描述的一致。 –