我已經在全球範圍內聲明瞭以下地圖並試圖在全球範圍內填充。全球填充地圖
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