C++ に存在するキーワードの一覧です。
C言語のキーワード一覧がこちらのページにあります。
C++14 をベースにして作成しており、それより前のバージョンでの事情を無視しています。C++17 以降で追加されたキーワードや用途については、バージョン名とともに記述しています。
ここで取り上げられている名前は、C++ として特別な意味を持つものとして予約されており、他の用途で使うことはできません(たとえば、変数や関数の名前といったものには使えません。ただし文脈依存キーワードは除く)。
キーワード | 意味・使い道 | 解説章 |
---|---|---|
alignas | アラインメントを指定する | 「メモリとオブジェクト」 |
alignof | アラインメントを取得する | 「メモリとオブジェクト」 |
and | && の代替表現 | |
and_eq | &&= の代替表現 | |
asm | 実装定義。通常はインラインアセンブラの記述 | |
auto |
1. 型推論 2. 関数の戻り値型の後置 3. ジェネリックラムダ |
1. 「イテレータ」 2. 「関数を作る」「関数テンプレート」 3. 「lambda_recursive_call」「関数テンプレート」 |
bitand | & の代替表現 | |
bitor |
の代替表現
| |
bool | 論理型 | 「論理値」「整数型」 |
break |
1. ループから抜け出す 2. switch文から抜け出す |
1. 「while文」 2. 「switch文」 |
case | switch文で使うラベル | 「switch文」 |
catch | 例外の捕捉 | 「文字列操作」 |
char | 文字型 | 「文字」「整数型」「UTF-8」 |
(C++20) char8_t | UTF-8 のための文字型 | 「UTF-8」 |
char16_t | UTF-16 のための文字型 | 「UTF-8」 |
char32_t | UTF-32 のための文字型 | 「UTF-8」 |
class |
1. クラス型 2. クラステンプレートの定義 3. テンプレート仮引数 4. テンプレートテンプレート仮引数の記述 5. scoped enum |
1.
「クラス」「シャッフルと乱数」「ヘッダファイル」 2. 「クラステンプレート」 3. 「クラステンプレート」「関数テンプレート」 4. 「クラステンプレート」 5. 「列挙型」 |
(C++20) co_await | コルーチン | |
(C++20) co_return | コルーチン | |
(C++20) co_yield | コルーチン | |
compl | ~ の代替表現 | |
(C++20) concept | コンセプト | |
const |
1. 読み取り専用にする 2. 実行時定数 3. constポインタ 4. constメンバポインタ 5. const参照 6. constメンバ関数 |
1.
「配列とポインタ」 2. 「配列とポインタ」 3. 「配列とポインタ」「多次元配列」 4. 「構造体とポインタ」 5. 「関数を作る」 6. 「クラス」「関数ポインタとラムダ式」 |
const_cast | const、volatile の付け外しを行うキャスト | |
(C++20) consteval | 即時関数 | |
constexpr |
1. constexpr変数 2. constexprメンバ関数 3. constexprコンストラクタ 4. (C++17) constexpr if |
1. 「定数式と識別子」「関数テンプレート」 |
(C++20) constinit | コンパイル時初期化を強制 | |
continue | ループを次の回へ進ませる | 「while文」 |
decltype | 式から型を得る | 「スコープと名前空間」 |
default |
1. switch文で使うラベル 2. 自動生成されるメンバ関数について、デフォルトの実装を使う明示的な指示 |
1. 「switch文」 |
delete |
1. 動的に割り当てられたメモリ領域を解放する 2. 関数を削除する |
2. 「静的メンバ」 |
do | 後判定ループ | 「while文」 |
double | 倍精度浮動小数点型 | 「浮動小数点数」 |
dynamic_cast | 実行時に行われるキャスト | |
else | if文の偽の場合の処理 | 「if文と条件演算子」 |
enum | 列挙型 | 「列挙型」「ヘッダファイル」 |
explicit |
1. 変換コンストラクタを抑止 2. 明示的な型変換演算子 |
1.「コンストラクタ」 |
export |
1. (C++17 まで) 何もしない 2. (C++20) モジュールのエクスポート |
|
extern |
1. 外部結合 2. 変数や関数の宣言 3. ほかのプログラミング言語との連携 4. テンプレートのインスタンス化を抑止 |
1.「分割コンパイル」 2. 「メモリとオブジェクト」 |
false | 偽 (bool型のリテラル) | 「論理値」 |
final (文脈依存キーワード) |
1. 継承を禁止する 2. オーバーライドを禁止する |
|
float | 単精度浮動小数点型 | |
for |
1. ループ 2. 範囲for文 |
1. 「for文」 2. 「std::vector」「多次元配列」 |
friend |
1. フレンド関数 2. フレンドクラス |
1.「関数テンプレート」 2.「関数テンプレート」 |
goto | ジャンプ | 「スコープと名前空間」 |
if |
1. 条件分岐 2. (C++17) constexpr if |
1. 「if文と条件演算子」 |
(C++20) import (文脈依存キーワード) |
モジュールのインポート | |
inline |
1. インライン関数 2. インライン名前空間 3. (C++17) インライン変数 |
1. 「クラス」 2.「スコープと名前空間」 |
int | 整数型 | 「入力と変数」「整数型」 |
long |
1. 大きめの整数型 (long) 2. さらに大きい整数型 (long long) 3. long double |
1.「整数型」 2.「整数型」 |
(C++20) module (文脈依存キーワード) |
モジュール | |
mutable |
1. constメンバ関数からでも書き換え可能なメンバ変数 2. ラムダ式で、コピーキャプチャした変数を書き換え可能にする |
2.「関数ポインタとラムダ式」 |
namespace | 名前空間 | 「スコープと名前空間」 |
new | 動的なオブジェクトの生成 | |
noexcept |
1. 例外の送出の有無を指定 2. 例外の送出の有無を調べる |
|
not | ! の代替表現 | |
not_eq | != の代替表現 | |
nullptr | ヌルポインタ | 「構造体とポインタ」「関数ポインタとラムダ式」 |
operator |
1. 演算子のオーバーロード 2. ユーザー定義リテラル |
|
or_eq | |= の代替表現 | |
override (文脈依存キーワード) |
オーバーライド | |
private |
1. メンバを外部に公開しないことを表すアクセス指定子 2. 非公開継承 |
1. 「クラス」 |
protected |
1.
メンバを自身のクラスと、その派生クラスにのみ公開することを表すアクセス指定子 2. 限定公開継承 |
1. 「クラス」 |
public |
1. メンバを外部に公開することを表すアクセス指定子 2. 公開継承 |
1. 「クラス」 |
register |
1. (C++14 まで) 高速化の要請(非推奨) 2. (C++17) 何もしない |
1. 「メモリとオブジェクト」 |
reinterpret_cast | ビットパターンを再解釈するキャスト | 「配列とポインタ」「バイナリ形式での読み書き」 |
(C++20) requires | 制約の記述 | |
return | 関数から戻る | 「ファイルとエラー」「関数から値を返す」 |
short | 小さめの整数型 | 「整数型」 |
signed | 符号付き整数型 | 「符号無し整数」「整数型」 |
sizeof |
1. 型や式の大きさ 2. パラメータパックの要素数を得る |
1. 「整数型」 |
static |
1. 内部結合 2. 静的ストレージ期間 3. 静的データメンバ 4. 静的メンバ関数 |
1. 「ヘッダファイル」 2. 「メモリとオブジェクト」 3. 「静的メンバ」 4. 「静的メンバ」 |
static_assert | コンパイル時アサート | 「アサート」 |
static_cast | 一般的なキャスト | 「浮動小数点数」、「符号無し整数」 |
struct |
1. 構造体 2. scoped enum |
1.
「構造体」「ヘッダファイル」「クラス」 2. 「列挙型」 |
switch | 多方向分岐 | 「switch文」 |
template |
1. 関数テンプレート(メンバ関数テンプレート) 2. クラステンプレート 3. template名であることを明示 4. エイリアステンプレート 5. テンプレートテンプレート仮引数 |
1.
「関数テンプレート」 2. 「クラステンプレート」 3. 「関数テンプレート」 4. 「クラステンプレート」 5. 「クラステンプレート」 |
this | thisポインタ | 「クラス」 |
thread_local | スレッドローカル | |
throw |
1. 例外を送出する 2. 例外指定 (非推奨) |
|
true | 真 (bool型のリテラル) | 「論理値」 |
try | 例外が送出され得る範囲を指定 | 「文字列操作」 |
typedef | 型の別名の定義 | 「符号無し整数」「関数ポインタとラムダ式」 |
typeid | 型情報を取得する | |
typename |
1. テンプレート仮引数の記述 2. テンプレート仮引数の依存名が型名であることを明確にする |
1.
「クラステンプレート」「関数テンプレート」 2. 「クラステンプレート」 |
union | 共用体 | |
unsigned | 符号無し整数型 | 「符号無し整数」「整数型」 |
using |
1. usingディレクティブ 2. using宣言 3. エイリアス宣言 4. エイリアステンプレート 5. 継承コンストラクタ 6. (C++20) スコープ付き列挙型の宣言 |
1.
「スコープと名前空間」 2. 「スコープと名前空間」 3. 「符号無し整数」「関数ポインタとラムダ式」 4. 「符号無し整数」「クラステンプレート」 |
virtual |
1. 仮想関数 2. 仮想継承 |
|
void |
1. 値がないことを表す型名 2. 汎用ポインタ 3. void式 |
1.
「関数を作る」「関数から値を返す」 3.「アサート」 |
volatile | 処理系が想定しない方法で変更される可能性を伝える | |
wchar_t | ワイド文字型 | 「UTF-8」 |
while | ループ | 「while文」 |
xor | ^ の代替表現 | |
xor_eq | ^= の代替表現 |
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |