前几天遇到了 C++ 版本的问题,今天记录一下。
以下情况只在 GCC 下测试过,MSVC 和 Clang 可能会不同。
std::cout << __cplusplus << std::endl;
__cplusplus | C++ 标准 |
---|---|
199711 | C++98 |
201103 | C++11 |
201402 | C++14 |
201703 | C++17 |
202002 | C++20 |
202100 | C++23 |
不同版本的 gcc 可能会有不同的情况,比如在 gcc 8.3 上,没有 c++20,它会提示使用 c++2a, 然后输出的 __cplusplus 是 201709