提取版本信息的方法是使用预处理指令。在C++中,可以使用预定义的宏__cplusplus
来获取编译器所支持的C++版本。
以下是一些常见的C++版本及其对应的__cplusplus
宏值:
__cplusplus
的值为199711L__cplusplus
的值为199711L__cplusplus
的值为201103L__cplusplus
的值为201402L__cplusplus
的值为201703L__cplusplus
的值为202002L通过检查__cplusplus
的值,可以确定编译器所支持的C++版本。
以下是一个示例代码,演示如何提取C++版本信息:
#include <iostream>
int main() {
if (__cplusplus == 199711L) {
std::cout << "C++98 or C++03" << std::endl;
} else if (__cplusplus == 201103L) {
std::cout << "C++11" << std::endl;
} else if (__cplusplus == 201402L) {
std::cout << "C++14" << std::endl;
} else if (__cplusplus == 201703L) {
std::cout << "C++17" << std::endl;
} else if (__cplusplus == 202002L) {
std::cout << "C++20" << std::endl;
} else {
std::cout << "Unknown C++ version" << std::endl;
}
return 0;
}
请注意,不同的编译器可能会对__cplusplus
的值有所不同,因此在使用时应该参考特定编译器的文档。此外,C++标准库中也提供了__cplusplus
的值的定义,可以使用<cstddef>
头文件中的__cplusplus
宏来获取版本信息。
领取专属 10元无门槛券
手把手带您无忧上云