C++ 標準では、新しいキーワードがいくつか追加されています。これらのキーワードを識別子として使用すると、多数の、ときとして意味不明のエラーメッセージが出力されます (キーワードがどこで識別子として使用されたかを判断することはかなり難しく、そうした場合は、エラーメッセージが役に立たないことががあります)。
次の表に示すように、新しいキーワードの大部分は、コンパイルオプションを使用して無効にできます。論理的に関連のあるオプションは、グループ単位で有効または無効にすることもできます。
表 3-1 標準モードで有効なキーワード
キーワード |
無効にするコンパイラオプション |
---|---|
bool、 true、 false |
-features=no%bool |
explicit |
-features=no%explicit |
export |
-features=no%export |
mutable |
-features=no%mutable |
namespace、using |
なし |
typename |
なし |
and、and_eq、bitand、compl、not、 not_eq、or、bitor、xor、xor_eq |
-features=no%altspell (下記の注を参照) |
特殊なトークンの代わりに使用できる文字列 (トークン代替文字列): ISO C 標準の追補には、特殊なトークンを生成するための新しいマクロを定義した C 標準のヘッダー <iso646.h> が導入されています。C++ 標準では、これらの文字列は予約語と定義されています (代替文字列が有効な場合、プログラムに <iso646.h> をインクルードしても何の働きもしません) 。これらのトークンの意味は、次の表に示すとおりです。
トークン |
代替文字列 |
---|---|
&& |
and |
&&= |
and_eq |
& |
bitand |
‾ |
compl |
! |
not |
!= |
not_eq |
|| |
or |
| |
bitor |
‾ |
xor |
‾= |
xor_eq |