檢查 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 高一個
。