名前空間
変種
操作

句読点

From cppreference.com
< cpp‎ | language
 
 
C++言語
全般
フロー制御
条件実行文
if
繰り返し文 (ループ)
for
範囲for (C++11)
ジャンプ文
関数
関数宣言
ラムダ式
inline指定子
動的例外仕様 (C++17まで*)
noexcept指定子 (C++11)
例外
名前空間
指定子
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
記憶域期間指定子
初期化
代替表現
リテラル
ブーリアン - 整数 - 浮動小数点数
文字 - 文字列 - nullptr (C++11)
ユーザー定義 (C++11)
ユーティリティ
属性 (C++11)
typedef宣言
型エイリアス宣言 (C++11)
キャスト
メモリ確保
クラス
クラス固有の関数プロパティ
explicit (C++11)
static

特殊メンバ関数
テンプレート
その他
 
 

これらはC++における句読点記号です。各記号の意味は、リンク先のページで詳しく説明されています。

目次

[編集] プリプロセッシング演算子

プリプロセッシング演算子はプリプロセッサによって認識されます。

[編集] # ( %: を含む)

[編集] ##( %:%: を含む)

[編集] 単一文字演算子と区切り文字

[編集] {} ( <%%> を含む)

(C++11以降)
(C++20以降)

[編集] [] ( <::> を含む)

(C++11以降)
(C++17以降)
(C++26以降)

[編集] ()

(C++11以降)
  • 配置newにおいて、配置引数を区切ります。
  • newにおいて、型IDを任意で区切ります。
  • newにおいて、初期化子を区切ります。
  • Cスタイルキャストにおいて、型IDを区切ります。
  • 宣言または型IDにおいて、グループ化を示します。
  • 以下のパラメーターリストを区切ります。
(C++11以降)
(C++17以降)
(C++20以降)
  • 初期化子直接初期化構文の一部。
  • asm宣言において、文字列リテラルを区切ります。
  • メンバ初期化子リストにおいて、基底またはメンバへの初期化子を区切ります。
  • 選択ステートメントまたは反復ステートメントの制御句を区切ります。これには以下が含まれます。
(C++11以降)
  • ハンドラにおいて、パラメータ宣言を区切ります。
  • 関数のようなマクロ定義において、マクロパラメータを区切ります。
  • 関数のようなマクロ呼び出しにおいて、マクロ引数を区切るか、カンマが引数区切り文字として解釈されるのを防ぎます。
  • defined__has_include(C++17以降)__has_cpp_attribute(C++20以降)プリプロセッシング演算子の一部。
  • static_assert宣言において、オペランドを区切ります。
  • 以下の指定子のオペランドを区切ります。
(C++20以降)
  • 属性において、属性引数を区切ります。
(C++11以降)
(C++14以降)
(C++17以降)
  • 可変長マクロ定義における__VA_OPT__置換の一部。
(C++20以降)

[編集] ;

  • 以下の終わりを示します。
  • モジュール宣言、インポート宣言、グローバルモジュールフラグメント導入子、またはプライベートモジュールフラグメント導入子
  • 要件
(C++20以降)

[編集] :

  • 範囲ベースのforステートメントにおいて、項目宣言範囲初期化子を区切ります。
  • 列挙宣言列挙基底において、基底型を導入します。
(C++11以降)
  • 属性指定子において、属性名前空間属性リストを区切ります。
(C++17以降)
(C++20以降)

[編集] ?

[編集] .

(C++20以降)

[編集] ~ ( compl を含む)

[編集] ! ( not を含む)

(C++23から)

[編集] +

[編集] -

[編集] *

  • ラムダキャプチャリストにおける*thisの一部で、現在のオブジェクトをコピーでキャプチャすることを示します。
(C++17以降)

[編集] /

[編集] %

[編集] ^ ( xor を含む)

[編集] & ( bitand を含む)

(C++11以降)

[編集] | ( bitor を含む)

[編集] =

  • ラムダキャプチャにおけるデフォルトキャプチャで、コピーによるキャプチャを示します。
  • 関数定義におけるデフォルト定義(=default;)または削除定義(=delete;)の一部。
  • 型エイリアス宣言において、エイリアスとエイリアスされた型を区切ります。
(C++11以降)
(C++20以降)

[編集] <

(C++20以降)
(C++17以降)
(C++20以降)

[編集] >

(C++20以降)
(C++17以降)
(C++20以降)

[編集] ,

(C++11以降)
(C++17以降)
(C++23から)
(C++11以降)

[編集] 複数文字演算子と区切り文字

[編集] ...

(C++11以降)
(C++26以降)

[編集] ::

  • 以下のスコープ解決演算子。
  • 属性において、属性スコープを示します。
(C++11以降)
(C++17以降)

[編集] .*

[編集] ->

(C++11以降)
(C++17以降)
  • 複合要件において、戻り値型の要件を導入します。
(C++20以降)

[編集] ->*

[編集] +=

[編集] -=

[編集] *=

[編集] /=

[編集] %=

[編集] ^= ( xor_eq を含む)

[編集] &= ( and_eq を含む)

[編集] |= ( or_eq を含む)

[編集] ==

[編集] != ( not_eq を含む)

[編集] <=

[編集] >=

<=>

(C++20以降)

[編集] && ( and を含む)

(C++11以降)

[編集] || ( or を含む)

[編集] <<

[編集] >>

[編集] <<=

[編集] >>=

[編集] ++

[編集] --

[編集] 参照

  • C++23標準 (ISO/IEC 14882:2024)
  • 5.12 演算子と区切り文字 [lex.operators]
  • C++20 standard (ISO/IEC 14882:2020)
  • 5.12 演算子と区切り文字 [lex.operators]
  • C++17 standard (ISO/IEC 14882:2017)
  • 5.12 演算子と区切り文字 [lex.operators]
  • C++14 standard (ISO/IEC 14882:2014)
  • 2.13 演算子と区切り文字 [lex.operators]
  • C++11 standard (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]

[編集] 関連項目

代替表現 特定の演算子の別表記[編集]
C のドキュメント 句読点について
English 日本語 中文(简体) 中文(繁體)