You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看编译器默认C++语言标准并修改默认版本?

关于Apple Clang 14.0.0的默认C标准及永久设置C20为默认的方法

一、当前编译器默认的C++标准

你使用的Apple clang 14.0.0(对应上游Clang 14版本),编译C代码时默认采用的是gnu++17标准——也就是兼容GNU扩展的C17标准。如果想自行验证,可通过以下步骤:

  1. 新建test.cpp文件,写入代码:
#include <iostream>
int main() {
    #if __cplusplus == 201703L
        std::cout << "C++17" << std::endl;
    #elif __cplusplus == 202002L
        std::cout << "C++20" << std::endl;
    #else
        std::cout << "Older standard" << std::endl;
    #endif
    return 0;
}
  1. 执行g++ test.cpp && ./a.out,输出结果为C++17,即可确认默认标准。

二、将默认标准设为C++20的方法

不用每次手动添加-std=c++20参数,有两种实用方式:

1. 给g++设置别名(推荐)

macOS默认使用zsh,若你用bash则对应修改bash配置文件:

  • 打开终端,执行nano ~/.zshrc(或用你习惯的编辑器)
  • 在文件末尾添加一行:
alias g++='g++ -std=c++20'
  • 保存退出后,执行source ~/.zshrc使设置立即生效。之后执行g++ main.cpp时,会自动带上-std=c++20参数。

2. 设置全局环境变量

若希望所有基于GCC/Clang的编译工具都默认用C++20,可设置环境变量:

  • 编辑~/.zshrc(或~/.bashrc),添加:
export CXXFLAGS="-std=c++20"
  • 执行source ~/.zshrc生效。注意:这种方式会影响所有读取CXXFLAGS的编译场景(比如Makefile),仅需单独修改g++行为的话,优先用别名方法。

内容的提问来源于stack exchange,提问作者Macto24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:07:11