キーワードは、特別な意味を持つ定義済みおよび予約済みの識別子です。 プログラムでは、キーワードを識別子として使用することはできません。 次のキーワードは Microsoft C++ 用に予約されています。 先頭にアンダースコアが付いていて、C++/CX および C++/CLI に指定された名前は Microsoft 拡張機能です。
標準の C++ キーワード
alignas
alignof
and
B
and_eq
B
asm
ある
auto
bitand
B
bitor
B
bool
break
case
catch
char
char8_t
C
char16_t
char32_t
class
compl
B
concept
C
const
const_cast
consteval
C
constexpr
constinit
C
continue
co_await
C
co_return
C
co_yield
C
decltype
default
delete
do
double
dynamic_cast
else
enum
explicit
export
C
extern
false
float
for
friend
goto
if
inline
a Microsoft 固有の __asm キーワードを指定すると、C++ の asm 構文が置き換えられます。
asm は他の C++ 実装との互換性を維持するために予約されていますが、実装されていません。 x86 ターゲットでインライン アセンブリに __asm を使用します。 Microsoft C++ では、他のターゲットのインライン アセンブリはサポートされていません。
b 拡張演算子のシノニムは、/permissive- または /Za (言語拡張機能を無効にする)が指定されている場合のキーワードです。 Microsoft 拡張機能が有効になっている場合、キーワードではありません。
c は、/std:c++20 以降 (/std:c++latest など) が指定されている場合にサポートされます。
Microsoft 固有の C++ キーワード
C++ では、2 つの連続するアンダースコアを含む識別子は、コンパイラの実装用に予約されています。 Microsoft の規約では、Microsoft 固有のキーワードには先頭に 2 つのアンダースコアを付けることになっています。 これらの単語を識別子名として使用することはできません。
Microsoft 拡張機能は既定で有効になっています。 完全に移植性のあるプログラムにするには、コンパイル時に /permissive- または /Za (言語拡張機能の無効化) オプションを指定することで、Microsoft 拡張機能を無効にできます。 これらのオプションでは、一部の Microsoft 固有キーワードが無効になります。
Microsoft 拡張機能を有効にすると、Microsoft 固有のキーワードをプログラム内で使用できます。 ANSI 準拠のために、これらのキーワードは 2 つのアンダースコアで始まります。 下位互換性維持のために、アンダースコア 2 文字のキーワードの多くに対して、アンダースコア 1 文字のバージョンがサポートされています。
__cdecl キーワードは先頭にアンダースコアなしで使用できます。
__asm キーワードは C++ の asm 構文に置き換わるものです。
asm は他の C++ 実装との互換性を維持するために予約されていますが、実装されていません。
__asm を使用してください。
__based キーワードには、32 ビットおよび 64 ビット ターゲット コンパイルに関する使用制限があります。
__alignof
E
__asm
E
__assume
E
__based
E
__cdecl
E
__declspec
E
__event
__except
E
__fastcall
E
__finally
E
__forceinline
E
__hook
D
__if_exists
__if_not_exists
__inline
E
__int16
E
__int32
E
__int64
E
__int8
E
__interface
__leave
E
__m128
d イベント処理に使用される組み込み関数。
e 以前のバージョンとの下位互換性のため、これらのキーワードは先頭に 2 つのアンダースコアが付いているものだけでなく、Microsoft の拡張機能を有効にしている場合 (既定) は 1 つのアンダースコアが付いているものも使用できます。
__declspec修飾子の Microsoft キーワード
これらの識別子は、__declspec 修飾子の拡張属性です。 これらは、そのコンテキスト内のキーワードと見なされます。
C++/CLI および C++/CX キーワード
__abstract
F
__box
F
__delegate
F
__gc
F
__identifier
__nogc
F
__noop
__pin
F
__property
F
__sealed
F
__try_cast
F
__value
F
abstract
G
array
G
as_friend
delegate
G
enum class
enum struct
event
G
f C++ のマネージド拡張にのみ適用。 この構文は現在非推奨とされます。 詳細については、「 Component Extensions for Runtime Platforms」を参照してください。
g C++/CLI に適用。