我在的Visual Studio 2012得到以下語法錯誤:語法錯誤的功能
1> ... \文件\的Visual Studio 2012 \項目... \ line.h (21):錯誤C2143:語法錯誤:缺少前 '
const
' ')
'
試圖創建下述(它是在另一文件中定義)也tokenList
是typedef
爲std::vector<std::string>
時:
extern std::map<std::string,std::function<std::string (const tokenList& tokens)>> evaluateOperator; //<-- This is the line with the error
,我希望能做到以下幾點:
evaluateOperator["="] = [](const tokenList& tokens) -> std::string
{
std::string temp("");
...
};
我在做什麼錯? (我對C++ 11非常陌生)。我也希望對於如何解決整個問題提出任何建議,即在基於輸入字符串的字符串列表上應用函數。謝謝。
編輯:這就是爲什麼SSCE是如此重要 - 我找到了錯誤的來源(使用ICC2013後)作爲錯誤的代碼順序 - typedef來自映射聲明後。對我而言,我是無知的,但有趣的是,英特爾C++編譯器2013能夠立即檢測出語法錯誤的原因,而VC++卻一頭霧水。
關閉'>>'通常在它們之間有空格,即''>''。 – Dilawar 2013-04-23 23:40:14
@Dilawar但是如果他有C++ 11,不應該這樣做**不是**問題? – 0x499602D2 2013-04-23 23:40:53
@Dilawar嗯我是在假設C++ 11已經解決了這個問題。無論如何,問題仍然存在 – 2013-04-23 23:41:15