C++關鍵字完整版


image
image
alignas (C++11 起) :指定類型或對象的對齊要求。
alignof (C++11 起) :查詢類型的對齊要求。
and :用作 && 的替代寫法
and_eq :用作 &= 的替代寫法
asm :匯編(asm)聲明 給予在 C++ 程序中嵌入匯編語言源代碼的能力。
atomic_cancel (TM TS) :原子塊,若拋出異常,則調用 std::abort,除非該異常是用於事務取消的異常之一(用於 atomic_cancel 塊中的事務取消的異常有 std::bad_alloc、std::bad_array_new_length、std::bad_cast、std::bad_typeid、std::bad_exception、std::exception 和所有從它派生的標准庫異常,以及特殊異常類型 std::tx_exception<T>。),這種情況下事務被取消(cancel):程序中所有由該原子塊的各操作的副作用所修改的內存位置的值,被還原到該原子塊的執行開始時它們曾擁有的值,而異常照常持續棧回溯。
atomic_commit (TM TS) :原子塊,若拋出異常,則正常地提交事務。
atomic_noexcept (TM TS) :原子塊,若拋出異常,則調用 std::abort。
auto(1)
1.自動生命周期(C++98,棄用)。
2.auto可以在聲明變量的時候根據變量初始值的類型自動為此變量選擇匹配的類型(C++11)
auto au_a = a;//自動類型推斷,au_a為int類型
3.用於代替冗長復雜、變量使用范圍專一的變量聲明。
4.在定義模板函數時,用於聲明依賴模板參數的變量類型。
5.模板函數依賴於模板參數的返回值
6.auto僅僅是一個占位符,它並不是一個真正的類型
bitand :用作 & 的替代寫法
bitor :用作 | 的替代寫法
bool :足以存放兩個值 true 或 false 之一的類型
break :控制將被轉移到緊跟其外圍循環或 switch 的下一位置。break 語句不能用於跳出多重嵌套循環
case :根據條件的值,將控制流轉移到若干語句之一
catch :和try聯合使用,將一或多個異常處理塊(catch 子句)與復合語句關聯。
char :能在目標系統上最有效地處理的字符表示的類型
char8_t (C++20 起) :UTF-8 字符表示的類型,要求大到足以表示任何 UTF-8 編碼單元( 8 位)
char16_t (C++11 起) :UTF-16 字符表示的類型,要求大到足以表示任何 UTF-16 編碼單元( 16 位)
char32_t (C++11 起) :UTF-32 字符表示的類型,要求大到足以表示任何 UTF-32 編碼單元( 32 位)
C++ 標准還保證:1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
class(1)
1.聲明類
2.有作用域枚舉(C++11)
3.在模板聲明中,class 可用於引入類型模板形參與模板模板形參
4.作用域中存在具有與某個類類型的名字相同的名字的函數或變量,則 class 可附於類名之前以消歧義
compl :用作 ~ 的替代寫法
concept (C++20 起) :聲明具名類型要求

概念是要求的具名集合。概念的定義必須出現於命名空間作用域中。
概念定義擁有以下形式
template < 模板形參列表 >
concept 概念名 = 約束表達式;
template <class T, class U>
concept Derived = std::is_base_of<U, T>::value;

const
1.const 類型限定符,定義類型為常量
2.const 限定的成員函數(例如 const 成員函數中,只能正常地調用其他 const 成員函數。)
consteval (C++20 起) : 指定函數是立即函數(immediate function),即每次調用該函數必須產生編譯時常量
constexpr (C++11 起) :指定變量或函數的值可在常量表達式中出現,在 constexpr if 語句中,條件 的值必須是可按語境轉換到 bool 類型的經轉換常量表達式。
constinit (C++20 起) :斷言變量擁有靜態初始化,即零初始化與常量初始化,否則程序非良構。
const_cast :用const_cast來去除const限定
continue :導致外圍 for、范圍 for、while 或 do-while 循環體的剩余部分被跳過。可在不用它而用條件語句忽略循環的剩余部分顯得笨拙時使用。(如同用 goto 跳轉到循環體末尾一樣)
co_await (C++20 起) :協程是能暫停執行以在之后恢復的函數。
co_return (C++20 起) :協程中的 return 語句
co_yield (C++20 起) :協程中表達式向調用方返回一個值並暫停當前協程
decltype (C++11 起) :檢查實體的聲明類型,或表達式的類型和值類別。
default(1)
1.switch 語句:用於聲明默認情況標號
2.顯式默認化的函數定義:令編譯器為某個類生成特殊成員函數或比較運算符 (C++20 起)的顯式指令。
(C++11 起)
delete(1)
1.銷毀先前由 new 表達式分配的對象,並釋放獲得的內存區域
2.解分配函數:作為運算符式的函數名
3.棄置函數(C++11 起)
do :do-while 循環:用作循環的聲明
double : 浮點類型
dynamic_cast :沿繼承層級向上、向下及側向,安全地轉換到其他類的指針和引用。
else :if 語句:用作另一分支的聲明
enum :聲明枚舉類型
explicit
1.指定構造函數或轉換函數 (C++11 起)或推導指引 (C++17 起)為顯式,即它不能用於隱式轉換和復制初始化。
2.explicit 說明符可以與常量表達式一同使用。當且僅當該常量表達式求值為 true 時函數為顯式。
export(1)(3)
1.用於標記模板定義為被導出,這允許在其他翻譯單元中聲明但不定義同一模板。(C++11 前)
2.不使用並保留該關鍵詞。(C++11 起)(C++20 前)
3.標記一個聲明、一組聲明或另一模塊為當前模塊所導出。(C++20 起)
extern(1)
1.具有外部連接的靜態存儲期說明符
2.語言連接說明
3.顯示模板實例化聲明(或“extern 模板”)
false :布爾字面量
float :單精度浮點類型
for
1.for 循環:用於該循環的聲明
2.基於范圍的 for 循環:用於該循環的聲明(C++11 起)
friend :友元聲明出現於類體內,並向一個函數或另一個類授予對包含友元聲明的類的私有及受保護成員的訪問權。
goto :無條件轉移控制流。當使用其他語句不可能將控制轉移到所需位置時使用。
if :有條件地執行另一條語句。用於需要基於運行時或編譯時條件執行的代碼。
inline(1)
1.將函數聲明為一個 內聯(inline)函數。完全在 class/struct/union 的定義之內定義的函數,無論它是成員函數還是非成員 friend 函數,均為隱式的內聯函數。
2.內聯命名空間
int :基本整數類型。
long :目標類型將有至少 32 位的寬度。
mutable(1)
1.容許在即便包含它的對象被聲明為 const 時仍可修改聲明為 mutable 的類成員。
2.mutable 用於指定不影響類的外部可觀察狀態的成員(通常用於互斥體、記憶緩存、惰性求值和訪問指令等)。
3.從按復制捕獲的形參中移除的 const 限定性的 lambda 聲明符 (C++11 起)
4.被mutable修飾的變量,將永遠處於可變的狀態,即使在一個const函數中。
namespace
1.命名空間聲明
2.命名空間別名聲明
3.using 指令
new
1.創建並初始化擁有動態存儲期的對象,這些對象的生存期不受它們創建時所在的作用域限制。
2.分配函數:作為運算符式的函數名
noexcept (C++11 起)
1.noexcept 運算符進行編譯時檢查,若表達式聲明為不拋出任何異常則返回 true
2.指定函數是否拋出異常。
not :用作 ! 的替代寫法
not_eq :用作 != 的替代寫法
nullptr (C++11 起) :代表指針字面量,保持空指針常量的含義。
operator :重載的運算符是具有特殊的函數名的函數
or :用作 || 的替代寫法
or_eq :用作 |= 的替代寫法
private :該訪問說明符之后的各個成員具有私有成員訪問
protected :該訪問說明符之后的各個成員具有受保護成員訪問
public :該訪問說明符之后的各個成員具有公開成員訪問
reflexpr (反射 TS) :反射是指程序在運行時動態獲取對象屬性與方法的一種機制
register(2)
1.動存儲期,另提示編譯器將此對象置於處理器的寄存器。
2.不使用並保留該關鍵詞。
reinterpret_cast :通過重新解釋底層位模式在類型間轉換。
requires (C++20 起)
1.對模板形參指定一個求值為要求的常量表達式
2.於模板聲明中指定關聯制約
return :終止當前函數並返回指定值(若存在)給調用方函數。
short :至少 16 位的寬度(和long一樣表示大小)
signed :目標類型將擁有有符號表示(若省略則此為默認)
sizeof(1)
1.查詢對象或類型的大小
2.在需要知道對象的實際大小時使用
3.返回形參包中的元素數量。
static
1.聲明具有靜態存儲期和內部連接的命名空間成員
2.定義具有靜態存儲期且僅初始化一次的塊作用域變量
3.聲明不綁定到特定實例的類成員
static_assert (C++11 起) :進行編譯時斷言檢查。
static_cast :用隱式和用戶定義轉換的組合在類型間轉換。
struct(1)
1.復合類型的聲明
2.有作用域枚舉類型的聲明(C++11 起)
3.若存在於作用域中的某個函數或變量所擁有的名字,與某個非聯合體類類型的名字相同,則可在其名字之前加上 struct 來消歧義,這產生一個詳述類型說明符
switch :根據條件的值,將控制流轉移到若干語句之一
synchronized (TM TS) :程序中的所有最外層同步塊都以一個單獨的全序執行
template
1.聲明模板
2.在模板定義中,template 可用於將某個待決名聲明為模板。
this :this 是一個純右值表達式,其值是隱式對象形參(在其上調用非靜態成員函數的對象)的地址
thread_local (C++11 起) :線程存儲期
throw
1.對錯誤條件發信號,並執行錯誤處理代碼。
2.列出函數可能直接或間接拋出的異常。
true : bool 類型的純右值,為真。
try :將一或多個異常處理塊(catch 子句)與復合語句關聯。
typedef :創建能在任何位置替代(可能復雜的)類型名的別名。
typeid :查詢類型的信息。用於必須知曉多態對象的動態類型的場合以及靜態類型鑒別。
typename
1.在模板聲明中,typename 可用作 class 的代替品,以聲明類型模板形參和模板形參 (C++17 起)。
2.在模板的聲明或定義內,typename 可用於聲明某個待決的有限定名是類型。
3.在模板的聲明或定義內, (C++11 前)typename 可在非待決的有限定類型名之前使用。此情況下它沒有效果。
4.在類型要求的要求中。(C++20 起)
union
1.聯合體類型的聲明
2.若存在於作用域中的某個函數或變量所擁有的名字與某個聯合體類型的名字相同,則可在該名字之前加上 union 以消歧義,這產生詳述類型說明符
unsigned :目標類型將擁有無符號表示
using(1)
1.對命名空間的 using 指令及對命名空間成員的 using 聲明
2.對類成員的 using 聲明
3.類型別名與別名模板聲明 (C++11 起)
virtual
1.虛函數說明符
2.虛基類說明符
void
1.void 類型
2.無形參函數的形參列表
volatile :定義類型為易變,確保本條指令不會因編譯器的優化而省略,且要求每次直接讀值。
wchar_t :寬字符表示的類型
while
1.while 循環:該循環的聲明
2.do-while 循環:該循環終止條件的聲明
xor :作為 ^ 的替代寫法
xor_eq :用作 ^= 的替代寫法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM