C++ - 我应该使用哪个编译器来使 auto eq = [ ](...) 语法正常工作?

问题描述 投票:0回答:1

我正在尝试运行答案此处中列出的计算向量中元素的出现次数代码。

但是我在这个函数中遇到了编译错误:

auto h = [](const std::string* s) {
     return std::hash<std::string>()(*s);
};

Expected expression
周围陈述
[ ]
。我知道这与编译器有关。 我正在使用
Xcode 5.0.2
,所以我可以选择更改编译器(我认为)。

然后我又收到另一个编译错误:

std::unordered_map<const std::string*, size_t, decltype(h), decltype(eq)> m(v.size(), h, eq);

C++ requires a specifier for all declarations
部分周围注明
m(v.size(), h, eq)

我应该确保使用什么编译器来编译

Xcode
才能使此代码正常工作?

更新:

这个

auto = [ ](...)
符号有一个特定的名称吗?我可以用谷歌搜索吗?

c++ xcode
1个回答
1
投票

你知道考虑的标准是什么吗?

尝试强制使用 C++11,以涵盖这些

lambda
结构和
unordered_map

© www.soinside.com 2019 - 2024. All rights reserved.