Mac上的C ++ Lambda错误(gcc已过期?)

时间:2018-03-09 02:22:09

标签: c++ macos

我在Mac上学习一些C ++,当我到达Lambda时,达到lambda时出现编译器错误(预期表达式):apply(^ HERE ^ []。

void apply(void (*f)(int)) {
    f(10);
}

void output() {
    apply([](int data) {
        printf("data: %d\n", data);
    });
}

输入" g ++ -v"在终端我得到:

  

配置:   --prefix = / Applications / Xcode.app / Contents / Developer / usr --with-gxx-include-dir = / usr / include / c ++ / 4.2.1 Apple LLVM 9.0.0版(clang-900.0.37)目标:x86_64-apple-darwin17.0.0线程模型:posix   InstalledDir:   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

我的Lambda代码是错误的还是我的编译器版本过时了?我保持Xcode更新(现在版本9)所以我希望有一个比2011年更新的C ++版本。

编辑:

解决方案是使用以下命令进行编译。 g ++默认情况下并不支持c ++ 11。

clang++ -std=c++11 -stdlib=libc++

0 个答案:

没有答案