2025年3月13日,周四晚上
要查看当前安装的 g++
编译器支持的最高 C++ 版本,可以通过以下方法实现:
1. 查看 g++
版本
首先通过命令获取当前 g++
的版本号:
g++ --version
或更详细的构建信息:
g++ -v
输出示例(假设当前版本为 GCC 11.4):
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
...
2. 对照 GCC 版本与 C++ 标准支持
根据 GCC 版本号,参考官方支持列表:
• C++98:GCC 3.4+ 默认支持。
• C++11:GCC 4.8.1+ 完全支持。
• C++14:GCC 6.1+ 完全支持(默认模式到 GCC 10)。
• C++17:GCC 8+ 完全支持(GCC 11 起为默认模式)。
• C++20:GCC 8+ 开始实验性支持,GCC 11+ 支持更多特性。
• C++23:GCC 13+ 提供实验性支持(需手动启用)。
例如,若你的 g++
版本是 11.4,则默认支持 C++17,支持 C++20 的大部分特性,并能通过实验性标志尝试 C++23 部分功能。
3. 通过编译选项测试支持性
使用 -std=
标志尝试不同标准,观察是否报错:
g++ -std=c++20 -dM -E -x c++ /dev/null | grep __cplusplus
输出示例:
#define __cplusplus 202002L # 表示支持 C++20
若报错或无法识别 -std=c++20
,则说明当前版本不支持该标准。
4. 查看预定义宏 __cplusplus
在代码中输出当前编译器使用的 C++ 标准:
#include <iostream>
int main() {std::cout << "C++ version: " << __cplusplus << std::endl;return 0;
}
编译并运行:
g++ -std=c++17 test.cpp && ./a.out
输出示例:
C++ version: 201703L # 对应 C++17
5. 参考官方文档
访问 GCC C++标准支持状态页面 查看最新版本对各标准的支持细节。