struct Structure { // Structure(const char* n,int v,bool a) : name(n),value(v),awesome(a) {} const char* name; int value; bool awesome; }; std::map<const char*,Structure> map; map["alpha"] = {"Alpha",true}; map["beta"] = {"Beta",1,false}; map["gamma"] = {"Gamma",2,true};
G(4.6)在C 03中接受这种赋值语法,但抱怨’扩展初始化语法仅在C 0x’中可用(释义).我知道我可以创建一个按顺序接受值的构造函数,但是我想知道这个语法是否可以接受(没有C 0x),或者G只是为了安抚我,因为我对C 0x非常焦虑.
用clang编译甚至不允许它(w / C 0x,我假设初始化列表缺乏),说’期望表达’,这基本上意味着“这到底是什么?”,甚至当我使用构造函数时(上面已注释掉),它会引发错误.
简介:基本上,使用的语法是什么,我可以使用初始化列表格式(在C 03或C 0x中)吗?