检查 C++ 版本
Anam Javed
2023年10月12日
本文将展示多年来的 C++ 版本,并讨论检查编译器使用的 C++ 标准的版本。
C++ 编程语言由新泽西州贝尔电话实验室的计算机科学家 Bjarne Stroustrup 设计和开发。他想要一种灵活且动态的语言,它与 C 的所有特性相似。
尽管如此,随着主动类型检查、基本继承、默认功能参数等的附加性,C with Classes
(C++) 已启动。
C++ 的版本
C++ 的最新版本是 C++20。它是 C++17 的更新和更复杂的版本。
根据 2019 年的一项调查,C++ 仍然是继 Java 和 C 之后第三大流行的编程语言。所有功劳都归功于 C++11 版本,使其更加健壮、更安全、更易于访问、更直接和更具表现力。
历年发布的各种 C++ 版本如下:
C++ 版本 | 描述 |
---|---|
C++98 (ISO/IEC 14882:1998) | C++ 的第一个版本于 1998 年 10 月发布。 |
C++03 (ISO/IEC 14882:2003) | 在这个版本的 C++ 中,值初始化是在 2003 年 2 月引入的。 |
C++11 | 它于 2011 年 8 月发布。这个 C++ 修订版引入了 Lambda 表达式、委托构造函数、统一初始化语法、自动类型推导、nullptr 、decltype 、Rvalue References 等。 |
C++14 | 它于 2014 年 8 月发布。此版本中添加的功能包括多态 lambda、数字分隔符、通用 lambda 捕获、变量模板、二进制整数文字、引用字符串等。 |
C++17 | 它于 2017 年 12 月发布。它引入了折叠表达式、十六进制浮点文字、u8 字符文字、带有初始化程序的选择语句、内联变量等。 |
C++20 | 它于 2020 年 12 月发布。包括的一些新功能包括:测试宏 3 路比较、运算符 <=> 和运算符==() = 默认值、新属性:[[no_unique_address]]、[[likely]]、[ [不太可能]] |
检查 C++ 标准编译器的版本
我们偶尔需要知道最新的 C++ 标准是什么。我们可以使用 __cplusplus
宏来获取此类信息。
该值将根据标准而有所不同。
标准 | __cplusplus 输出 |
---|---|
C++ 前 C++98 | 1 |
C++98 | 199711L |
C++98 + TR1 | 这个不能勾选,这个会被标记为 C++98 |
C++11 | 201103L |
C++14 | 201402L |
C++17 | 201703L |
检查 C++ 版本的程序:
#include <iostream>
int main() {
if (__cplusplus == 201703L)
std::cout << "C++17" << endl;
else if (__cplusplus == 201402L)
std::cout << "C++14" << endl;
else if (__cplusplus == 201103L)
std::cout << "C++11" << endl;
else if (__cplusplus == 199711L)
std::cout << "C++98" << endl;
else
std::cout << "pre-standard C++" << endl;
}
输出:
C++98
在这个程序中,我们检查 C++ 版本是否等于上表中给出的相应输出。它提供了 C++98
,因为 cplusplus
的结果是 199711L
。
结论
在本文中,我们讨论了 C++ 版本的检查。我们详细了解了 C++ 的版本。
此外,我们还通过示例讨论了检查 C++ 版本的概念。在 1983 年更名为 C++ 之前,C++ 以前称为 C with classes
。
因为++
是在编程中为多样性加一的缩写,所以 C++ 本质上翻译为比 C 高一个
。