我已经在全球范围内声明了以下地图并试图在全球范围内填充。全球填充地图
1: typedef std::map<unsigned short,std::pair<char,std::string>> DeviceTypeList;
2: DeviceTypeList g_DeviceTypeList;
3: g_DeviceTypeList.insert(std::make_pair ((unsigned short)SINGLE_CELL_CAMERA,
std::make_pair('B',"Single Cell Camera")));
它显示错误等错误C2143:语法错误:缺少 ';'之前'。'在第2行。
1我是否做错了
2.为什么我们不能在全局初始化地图。
不,这不会解决它。应使用C++ 0x中的初始化程序列表或构造函数中的继承类填充基础。您不能在全局范围内执行任意函数,只能执行全局对象或初始化器的构造函数。 – 2011-06-02 03:19:33
@Vlad:我停止阅读语法错误...好点。 – Nemo 2011-06-02 03:24:03
@Vlad你应该使用这个在构造函数中继承的类填充基类的意思 – 2011-06-02 03:25:50