我在 Visual Studio 2012 中收到以下语法错误:
1>...\documents\visual studio 2012\projects...\line.h(21): 错误 C2143: 语法错误:在 '
)
' 之前缺少 'const
'
尝试创建以下内容时(它在另一个文件中定义)tokenList
也是typedef
for 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++ 却摸不着头脑。