キーワード (C++)
代替字句(alternative token)のうちの、記号ではなくアルファベット(と下線)で表現する代替表現(alternative representation)は、キーワードには列挙されていないが、キーワードと同様に扱われる。ISO 14882の英語版の注ではlexical keywords(字句的にはキーワードであるもの)という表現が使われているが、JIS X 3014:2003の注では「予約語」という用語を用いて説明されている。
C/C++ではASCIIの記号類を多用しているので、ISO/IEC 646のUS以外を使用している環境では問題がある。それらの代用として、問題のない文字だけで表現するのが代替字句である(同じ用途のものとして他にトライグラフがある)。代替字句のうち、記号で表すダイグラフ(規格票の用語では「二つ組」)以外が代替表現である。これらはCではマクロ(ヘッダiso646.h、C95で標準化された)だが、C++では言語の一部である。
以下にそれぞれ対応する演算子を示してある。
newはヒープにオブジェクトを割り当てるnewとnew[]演算子に用いられ、deleteはそれを開放する演算子 deleteとdelete[]に用いられる([]の有無で演算子は区別される)。JavaやC#などと違い、C++はガベージコレクションをもたないのでオブジェクトが不要になったら自分でdeleteを呼ぶ必要がある(スマートポインタを用いてdeleteの手間を省くようにすることはできる)。もっとも、C++には自動変数・大域変数などが存在するため、それほどnewは多用されない。
deleteは関数の定義にも使用される。関数を「= delete」の形で定義して、そのシグネチャの関数を存在させないことを指示する(*)。
!
^=
Cからの外部結合の指定に加え、リンケージ指定の用法が加わっている。
C++では名前(関数名や変数名など)に対して多重定義や名前空間、型安全の保障などの都合から、多くのコンパイラは名前修飾を施しCとは異なった名前をリンカに対して用いている。その名前の修飾の仕方を指定するのがリンケージ指定である。少なくとも"C"と"C++"の2種類のリンケージが使用できる。何も指定しないと"C++"になる。"C"リンケージでは名前の変形を抑止しCと互換の名前をリンカに対して用いることを意味する。これによりCとC++を混在させてプログラムを作るときに使われる。
また、extern templateの形でテンプレート実体化宣言を修飾して、外部で実体化されたテンプレートを指定する(*)。