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);