Namespaces
Variants

Punctuation

From cppreference.net
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications ( until C++17* )
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous

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

目次

プリプロセス演算子

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

# (を含む % : )

## (含む % : % : )

単一文字演算子と区切り文字

{ および } < % および % > を含む)

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

[ および ] < : および : > を含む)

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

( および )

(C++11以降)
(C++11以降)
(C++17以降)
(C++20以降)
翻訳のポイント: - HTMLタグ、属性、 タグ内のテキストは翻訳せず保持 - C++専門用語(lambda expression, user-defined deduction guide, requires expression)は原文のまま保持 - 「since C++XX」は「C++XX以降」と自然な日本語に翻訳 - 接続詞「a」は文脈に合わせて適切に翻訳
(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以降)
  • 属性指定子 において、 attribute-namespace attribute-list を区切る。
(C++17以降)
(C++20以降)

?

.

(C++20 以降)

~ (含む compl )

! (including not )

(C++23以降)

+

-

*

  • * this lambda capture リストで使用し、現在のオブジェクトをコピーによってキャプチャします。
(C++17以降)

/

%

^ (排他的論理和を含む)

& (including bitand )

(C++11以降)

| (ビットOR演算子 bitor を含む)

=

  • lambda capture におけるキャプチャデフォルトで、コピーによるキャプチャを示す。
  • function definition におけるデフォルト定義 ( = default ; ) または削除定義 ( = delete ; ) の一部。
  • type alias declaration において、エイリアスとエイリアス化される型を分離する。
(C++11以降)
(C++20以降)

<

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

>

(C++20以降)
翻訳のポイント: - HTMLタグと属性はそのまま保持 - ` `タグ内の"lambda expression"はC++専門用語のため翻訳せず - "(since 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 )

==

! = (including not_eq )

<=

>=

変更点の説明: - "Greater-than-or-equal-to operator" → "以上演算子" - "part of" → "の一部であり、" - "in" → "に含まれる" - HTMLタグ、属性、 タグ内のC++コード(operator >=)は翻訳せず保持 - 文脈に合わせて自然な日本語表現に調整

<=>

(C++20以降)

&& (論理積 and を含む)

(C++11以降)

|| (インクルード 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]

関連項目

代替表現 特定の演算子に対する代替スペル
Cドキュメント for 句読点