我在的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