• 144

怎样让clang默认支持C++11?

在Mac上用clang++命令编译C++的时候, 总是有 关于C++11的警告,

比如 warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]

诸如此类的警告太多,

本来我想无视他的, 但是现在某些特性甚至成为了错误......

比如 列表初始化vector, error: non-aggregate type 'vector<int>' cannot be initialized with an initializer list.

需要在编译的时候添加 -std=c++11 才行.

我比较懒, 每次编译添加 -std=c++11 感觉很累.

所以问题就是,

我怎样设置clang (我不知道clang是否可以设置), 使得我在编译C++的时候, 不需要添加 -std=c++11 就支持C++11的特性 ?

运行环境, OS X 10.11.3

clang --version
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.3.0
Thread model: posix

谢谢?

阅读 12.7k
评论 2016-02-05 提问
    2 个回答

    并不能直接设置 但我们可以曲线救国

    如果你用的是 bash

    echo "alias g++='g++ -std=c++11'" >> ~/.bashrc'
    source ~/.bashrc
    

    zsh的话

    echo "alias g++='g++ -std=c++11'" >> ~/.zshrc'
    source ~/.zshrc
    

    这样 g++ 就自带该参数了 或者你可以用 g++11之类的别名

      我不知道怎么设置,但是你可以写个Shell脚本,哈哈哈:

      #!/bin/sh
      clang++ -std=c++11 "$@"
        撰写回答

        登录后参与交流、获取后续更新提醒