g++和clang++支持c++11
在mac
上用clang++
或者g++
编译c++11
的文件时,老是报错或警告.
test.cpp 1
2
3
4
5
6
7
8
9
10
int main() {
std::vector<int> nums{1,2,3};
for(int num : nums) {
std::cout << num << std::endl;
}
return 0;
}
例如我们编译test.cpp这个文件时
使用clang++
编译,
1 | clang++ test.cpp |
我们会发现编译错误,因为默认的不支持c++11
这样进行列表初始化。
如果我们想成功编译需要这样
1 | clang++ -std=c++11 test.cpp |
g++也是一样
1 | g++ -std=c++11 test.cpp -o test |
每次都写-std=c++11
比较麻烦,我们可以考虑使用别名。
如果你终端使用的是bash
,你需要在.bashrc
中添加
1 | alias clang++='clang++ -std=c++11' |
最后 1
source ~/.bashrc
在zsh
中同理在.zshrc
中添加以上两句,在source
即可。