c++ - 如何让 clang 3.4 编译通用 lambdas?

标签 c++ auto lambda c++14

compiler at rextester说它正在运行 clang 3.4,并且 clang language support page说 clang 3.4 支持通用 lambda,但我无法编译此代码:

int main()
{
    auto genLambda = [](auto param) {};
}

我正在使用 -std=c++1y 进行编译。使用 --version 编译会产生以下结果,这就是我相信我正在运行 clang 3.4 的原因:

Ubuntu clang version 3.4-1ubuntu1 (trunk) (based on LLVM 3.4)
Target: x86_64-pc-linux-gnu
Thread model: posix

知道我做错了什么吗?

最佳答案

在我的计算机上仅通过 --std=c++1y 使用 clang 3.4 可以使用您的示例代码。

Ubuntu clang 版本 3.4-1ubuntu3 (tags/RELEASE_34/final)(基于 LLVM 3.4)

因为您的 --version 引用了 trunk 它可能是 clang 3.4 的 SVN 拷贝,它是在将通用 lambda 表达式添加到代码库之前获得的。

关于c++ - 如何让 clang 3.4 编译通用 lambdas?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23074513/

相关文章:

c++ - static_cast 被滥用了吗?

c++ - 这是什么意思?

c++ - double : Multiplication of big numbers

c++ - C++1 7's deduced ` auto` 非类型 `template` 参数是否可以使用显式非类型参数模式匹配模板?

用于灵活性的 C++ auto 关键字

c++ - 在没有 lambda 的情况下将模板化函数作为方法参数传递?

c++ - TimerQueue 未声明的标识符

c++ - 范围基数并插入 vector C++11

c++ - 在 C++ lamdas 和 QTimer 上。这个警告是什么意思,如何消除它?

java - 代码在 Eclipse 中编译但不是 javac : curried lambdas with functional subinterface. 哪个是正确的?