這些是 C++ 中的標點符號。每個符號的含義在連結的頁面中詳細說明。
[編輯] 預處理運算子
預處理運算子由預處理器識別。
[編輯] # (包括 %:)
[編輯] ##(包括 %:%:)
[編輯] 單字元運算子和標點符號
[編輯] { 和 } (包括 <% 和 %>)
-
[編輯] [ 和 ] (包括 <: 和 :>)
|
(C++11 起) |
|
(C++17 起) |
|
(C++26 起) |
[編輯] ( 和 )
-
-
-
|
(C++11 起) |
-
|
(C++17 起) |
-
|
(C++20 起) |
-
- 在處理程式中,分隔引數宣告。
- 在函式式宏定義中,分隔宏引數。
- 在函式式宏呼叫中,分隔宏引數或防止逗號被解釋為引數分隔符。
defined
、__has_include
(C++17 起)、__has_cpp_attribute
(C++20 起)預處理運算子的一部分。
-
|
(C++11 起) |
|
(C++14 起) |
|
(C++17 起) |
|
(C++20 起) |
-
- 模組宣告、匯入宣告、全域性模組片段引入器或私有模組片段引入器
- 需求
|
(C++20 起) |
|
(C++11 起) |
|
(C++17 起) |
- 在模組宣告或模組分割槽匯入宣告中,引入模組分割槽名稱。
- 私有模組片段引入器 (module :private;) 的一部分。
|
(C++20 起) |
[編輯] ~ (包括 compl)
[編輯] ! (包括 not)
[編輯] ^ (包括 xor)
[編輯] & (包括 bitand)
[編輯] | (包括 bitor)
-
- 在模板特化宣告中,作為 template<> 的一部分。
- 在以下內容中引入標頭檔案名稱
-
-
- 在模板特化宣告中,作為 template<> 的一部分。
- 表示標頭檔案名的結束
-
-
-
|
(C++11 起) |
-
|
(C++17 起) |
-
|
(C++23 起) |
-
[編輯] 多字元運算子和標點符號
[編輯] ...
- 在函式宣告符或 lambda 表示式(C++11 起)或使用者定義推導指南(C++17 起)的引數列表中,表示變參函式。
- 在處理程式中,表示 catch-all 處理程式。
[編輯] ::
-
[編輯] .*
[編輯] ->
|
(C++11 起) |
|
(C++17 起) |
|
(C++20 起) |
[編輯] ->*
[編輯] +=
[編輯] -=
[編輯] *=
[編輯] /=
[編輯] %=
[編輯] ^= (包括 xor_eq)
[編輯] &= (包括 and_eq)
[編輯] |= (包括 or_eq)
[編輯] ==
[編輯] != (包括 not_eq)
[編輯] <=
[編輯] >=
[編輯] && (包括 and)
[編輯] || (包括 or)
[編輯] <<
[編輯] >>
[編輯] <<=
[編輯] >>=
[編輯] ++
[編輯] --
[編輯] 參考文獻
- C++23 標準 (ISO/IEC 14882:2024)
- 5.12 運算子和標點符號 [lex.operators]
- C++20 標準 (ISO/IEC 14882:2020)
- 5.12 運算子和標點符號 [lex.operators]
- C++17 標準 (ISO/IEC 14882:2017)
- 5.12 運算子和標點符號 [lex.operators]
- C++14 標準 (ISO/IEC 14882:2014)
- 2.13 運算子和標點符號 [lex.operators]
- C++11 標準 (ISO/IEC 14882:2011)
- 2.13 運算子和標點符號 [lex.operators]
- C++03 標準 (ISO/IEC 14882:2003)
- 2.12 運算子和標點符號 [lex.operators]
- C++98 標準 (ISO/IEC 14882:1998)
- 2.12 運算子和標點符號 [lex.operators]
[編輯] 另請參閱