c – 分配给结构图的语法

前端之家收集整理的这篇文章主要介绍了c – 分配给结构图的语法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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中)吗?

解决方法

通过使用新的统一初始化语法,上述代码仅在C 0x中合法. C 03将拒绝这一点.在此期间,为结构定义构造函数是可行的方法.

猜你在找的C&C++相关文章