gpt4 book ai didi

c++ - 从字符串到函数的映射中存在语法错误

转载 作者:行者123 更新时间:2023-11-28 07:39:08 25 4
gpt4 key购买 nike

我在 Visual Studio 2012 中遇到以下语法错误:

1>...\documents\visual studio 2012\projects...\line.h(21): error C2143: syntax error : missing ')' before 'const'

当尝试创建以下内容时(它在另一个文件中定义)也是 tokenListtypedef对于 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 在 map 声明之后出现。对我来说很愚蠢,但有趣的是,英特尔 C++ 编译器 2013 能够立即检测到语法错误的原因,而 VC++ 却摸不着头脑。

最佳答案

您声称发生错误的行与 C++11 独有的语法属性几乎没有关系。除了 std::function,但如果您的编译器不支持它,它不会表示编译失败并出现语法错误。

也许错误来自它下面的代码。我认为 VS 目前还不支持 lambda,这可能是错误的根源。请注意,您的代码在 GCC 中编译得很好.

关于c++ - 从字符串到函数的映射中存在语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16180969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com