C++のキーワード(予約語)とは?95個の一覧と分類を徹底解説
C++のキーワード(予約語)とは
C++における「キーワード(keyword)」とは、コンパイラによってその意味があらかじめ定義されている単語のことです。そのため、キーワードを変数名や関数名といった識別子(identifier)として使用することはできません。
なお、キーワードは「予約語」と「事前定義識別子」の総称です。事前定義識別子とは、コンパイラが定義しているものの、ユーザー側で意味を変更できる識別子を指します。
mainとelseの違いで理解する
たとえば、main関数の中に「main」という名前の変数を宣言し、値を初期化して出力することは可能です(ただし、これは動作確認のためだけに行いましょう)。ところが、「else」という名前の変数に対して同じことはできません。この違いは、elseが予約語である一方で、mainは「単なる」事前定義識別子であることに起因しています。
C++の予約語は全部で95個
C++には合計95個の予約語が存在します。これらはいくつかのグループに整理すると、理解しやすくなります。
- C言語から引き継がれた予約語(32個):C言語にも存在しており、そのままC++へと持ち越されたキーワードです。
- C++で新たに追加された予約語(30個):Cには存在せず、C++プログラミング言語で初めて導入されたキーワードです。
- 演算子の代替表記(11個):標準ASCII文字セットを使用する場合には必須ではないものの、一部のC++演算子を読みやすい形で記述するための代替表記として追加されたものです。また、C++に必要な記号を持たない文字セットでのプログラミングを支援する役割も担っています。
C++のキーワード一覧
以下に、C++のすべての予約語を示します。「since C++11」などの注記は、そのキーワードが導入された規格のバージョンを表します。また、「TM TS」はトランザクショナルメモリ、「coroutines TS」はコルーチン、「modules TS」はモジュールに関する技術仕様(Technical Specification)に由来するキーワードです。
alignas(since C++11) | double | reinterpret_cast |
alignof(since C++11) | dynamic_cast | requires(since C++20) |
and | else | return |
and_eq | enum | short |
asm | explicit | signed |
atomic_cancel(TM TS) | export | sizeof |
atomic_commit(TM TS) | extern | static |
atomic_noexcept(TM TS) | false | static_assert(since C++11) |
auto | float | static_cast |
bitand | for | struct |
bitor | friend | switch |
bool | goto | synchronized(TM TS) |
break | if | template |
case | import(modules TS) | this |
catch | inline | thread_local(since C++11) |
char | int | throw |
char16_t(since C++11) | long | true |
char32_t(since C++11) | module(modules TS) | try |
class | mutable | typedef |
compl | namespace | typeid |
concept(since C++20) | new | typename |
const | noexcept(since C++11) | union |
constexpr(since C++11) | not | unsigned |
const_cast | not_eq | using |
continue | nullptr(since C++11) | virtual |
co_await(coroutines TS) | operator | void |
co_return(coroutines TS) | or | volatile |
co_yield(coroutines TS) | or_eq | wchar_t |
decltype(since C++11) | private | while |
default | protected | xor |
delete | public | xor_eq |
do | register |
なお、registerはC++11で非推奨となり、C++17で廃止されたキーワードです。また、and・or・xorなどは、それぞれ&&・||・^の代替表記に相当します。
これらのキーワード一覧を把握しておくことで、変数名や関数名を付ける際のコンパイルエラーを未然に防ぐことができます。C++学習の第一歩として、ぜひ参考にしてください。
-
C++のトークン・識別子・キーワードとは?基本をわかりやすく解説
C++プログラムを構成する最小単位である「トークン」、開発者が自由に名前を付けられる「識別子」、そして言語側で使用が予約されている「キーワード」。本記事では、C++を学ぶ上で欠かせないこれら三つの概念について、初心者にもわかりやすく丁寧に解説します。トークンとは何かトークン(字句)とは、C++プログラムを構成する要素の中で、コンパイラにとって意味を持つ最小の単位のことです。C++のパーサー(構文解析器)は、ソースコードを読み込みながら、これらのトークンを一つずつ認識していきます。C++のパーサーが認識する主なトークンの種類は以下の通りです。識別子(identifier):変数名や関数名など、ユ
-
C#のキーワードとは?予約キーワードと文脈キーワードの一覧まとめ
キーワード(keyword)とは、C#コンパイラに対してあらかじめ定義されている予約語のことです。これらのキーワードは、変数名・メソッド名・クラス名などの識別子(identifier)として使用することができません。ただし、どうしてもキーワードを識別子として使用したい場合は、キーワードの先頭に「@」記号を付けることで使用可能になります。例えば @class のように記述すれば、class という名前の変数を作成できます。C#のキーワードは、大きく分けて以下の2種類があります。1. 予約キーワード(Reserved Keywords)予約キーワードは、C#言語全体で常に特別な意味を持つキーワード