C++ C++;-我应该使用哪种编译器使auto eq=[](…)语法正常工作?
我正在尝试计算答案中列出的向量代码中元素的出现次数 但是我在这个函数中遇到了编译错误:C++ C++;-我应该使用哪种编译器使auto eq=[](…)语法正常工作?,c++,xcode,compiler-construction,C++,Xcode,Compiler Construction,我正在尝试计算答案中列出的向量代码中元素的出现次数 但是我在这个函数中遇到了编译错误: auto h = [](const std::string* s) { return std::hash<std::string>()(*s); }; 声明C++需要为m(v.size(),h,eq)部分周围的所有声明指定一个说明符 我应该确保Xcode是用什么编译器编译的,才能使代码正常工作? 更新: 这个auto=[](…)符号有没有一个特别的名字,我可以在谷歌上搜索一下?你知道考
auto h = [](const std::string* s) {
return std::hash<std::string>()(*s);
};
声明C++需要为m(v.size(),h,eq)
部分周围的所有声明指定一个说明符
我应该确保Xcode
是用什么编译器编译的,才能使代码正常工作?
更新:
这个auto=[](…)
符号有没有一个特别的名字,我可以在谷歌上搜索一下?你知道考虑的是什么标准吗
尝试强制使用C++11,以覆盖这些lambda
结构和unordered_-map
不确定,但并不意味着?clang 3.1或更高版本;gcc 4.5或更高版本;参见和@πάνταῥεῖ, 默认情况下它使用GCC。@chris感谢您的澄清。我对Xcode不是很熟悉,一定是我的一个被误导的个人协会。。@wesley.mesquita就是这样做的。有趣的是,GNU11++
的选项不起作用。只有C++11
会认为它们是一样的。把这个写进答案里,我会接受的。谢谢
std::unordered_map<const std::string*, size_t, decltype(h), decltype(eq)> m(v.size(), h, eq);