C++ キーワードKeywords (C++)

キーワードは、特別な意味を持つ定義済みおよび予約済みの識別子です。Keywords are predefined reserved identifiers that have special meanings. プログラムでは、キーワードを識別子として使用することはできません。They cannot be used as identifiers in your program. 次のキーワードは Microsoft C++ 用に予約されています。The following keywords are reserved for Microsoft C++. 先頭にアンダースコアが付いた名前、名前の後に (C++/CLI) がある場合は、Microsoft 拡張機能が使用されます。Names with leading underscores, and names followed by (C++/CLI) are Microsoft extensions.

__abstract 2__abstract 2 __alignof 4__alignof 4 __asm 4__asm 4 __assume 4__assume 4
__based 4__based 4 __box 2__box 2 __cdecl 4__cdecl 4 __declspec 4__declspec 4
__delegate 2__delegate 2 __event__event __except 4__except 4 __fastcall 4__fastcall 4
__finally 4__finally 4 __forceinline 4__forceinline 4 __gc 2__gc 2 __hook 3__hook 3
__identifier__identifier __if_exists__if_exists __if_not_exists__if_not_exists __inline 4__inline 4
__int16 4__int16 4 __int32 4__int32 4 __int64 4__int64 4 __int8 4__int8 4
__interface__interface __leave 4__leave 4 __m128__m128 __m128d__m128d
__m128i__m128i __m64__m64 __multiple_inheritance 4__multiple_inheritance 4 __nogc 2__nogc 2
__noop__noop __pin 2__pin 2 __property 2__property 2 __ptr32 4__ptr32 4
__ptr644__ptr644 __raise__raise __restrict 4__restrict 4 __sealed 2__sealed 2
__single_inheritance4__single_inheritance4 __sptr4__sptr4 __stdcall 4__stdcall 4 __super__super
__thiscall__thiscall __try_cast 2__try_cast 2 __unaligned 4__unaligned 4 __unhook 3__unhook 3
__uptr 4__uptr 4 __uuidof 4__uuidof 4 __value 2__value 2 __vectorcall 4__vectorcall 4
__virtual_inheritance 4__virtual_inheritance 4 __w64 4__w64 4 __wchar_t__wchar_t abstract(C++/cli)abstract(C++/CLI)
alignasalignas array(C++/cli)array(C++/CLI) autoauto boolbool
breakbreak casecase catchcatch charchar
char16_tchar16_t char32_tchar32_t classclass constconst
const_castconst_cast constexprconstexpr continuecontinue decltypedecltype
defaultdefault delegate(C++/cli)delegate(C++/CLI) deletedelete 非推奨 1deprecated 1
dllexport 1dllexport 1 dllimport 1dllimport 1 dodo doubledouble
dynamic_castdynamic_cast elseelse enumenum enum クラスenum class
enum structenum struct イベント(C++/cli)event(C++/CLI) explicitexplicit externextern
falsefalse finallyfinally floatfloat forfor
の各のfor each in 味方friend friend_asfriend_as gcnew(C++/cli)gcnew(C++/CLI)
ジェネリック(C++/cli)generic(C++/CLI) gotogoto ifif initonlyinitonly
inlineinline intint インターフェイスクラス(C++/cli)interface class(C++/CLI) インターフェイス構造体(C++/cli)interface struct(C++/CLI)
interior_ptr(C++/cli)interior_ptr(C++/CLI) literal(C++/cli)literal(C++/CLI) longlong 変更可能なmutable
1naked 1 namespacenamespace 新規(C++/cli)new(C++/CLI) newnew
noexceptnoexcept noinline 1noinline 1 noreturn 1noreturn 1 nothrow 1nothrow 1
novtable 1novtable 1 nullptrnullptr operatoroperator privateprivate
プロパティ(C++/cli)property(C++/CLI) プロパティ 1property 1 protectedprotected publicpublic
ref classref class ref structref struct registerregister reinterpret_castreinterpret_cast
returnreturn safecastsafecast sealed(C++/cli)sealed(C++/CLI) selectany 1selectany 1
shortshort signedsigned sizeofsizeof staticstatic
static_assertstatic_assert static_caststatic_cast structstruct switchswitch
templatetemplate thisthis スレッド 1thread 1 throwthrow
truetrue trytry typedeftypedef typeidtypeid
typeidtypeid typenametypename unionunion unsignedunsigned
宣言の使用using declaration usingディレクティブusing directive uuid 1uuid 1 value クラス(C++/cli)value class(C++/CLI)
値構造体(C++/cli)value struct(C++/CLI) virtualvirtual voidvoid volatilevolatile

1 __declspecキーワードの拡張属性。1 Extended attributes for the __declspec keyword.

2 Managed Extensions for C++ にのみ適用されます。2 Applicable to Managed Extensions for C++ only. この構文は現在非推奨とされます。This syntax is now deprecated. 詳細については、「ランタイムプラットフォームのコンポーネント拡張」を参照してください。See Component Extensions for Runtime Platforms for more information.

3イベント処理で使用される組み込み関数。3 Intrinsic function used in event handling.

4以前のバージョンとの下位互換性を維持するために、これらのキーワードは、Microsoft 拡張機能が有効になっている場合に、先頭に2つのアンダースコアと1つの先頭にアンダースコアを使用できます (既定)。4 For backward compatibility with previous versions, these keywords are available both with two leading underscores and a single leading underscore when Microsoft extensions are enabled (the default).

Microsoft 固有の仕様Microsoft Specific

Microsoft C++ では、先頭に 2 つのアンダースコアが付いている識別子はコンパイラ実装用に予約されています。In Microsoft C++, identifiers with two leading underscores are reserved for compiler implementations. Microsoft の規約では、Microsoft 固有のキーワードには先頭に 2 つのアンダースコアを付けることになっています。Therefore, the Microsoft convention is to precede Microsoft-specific keywords with double underscores. したがって、これらの単語を識別子名として使用することはできません。These words cannot be used as identifier names.

Microsoft 拡張機能は既定で有効になっています。Microsoft extensions are enabled by default. 完全に移植性のあるプログラムにするには、コンパイル時に /Za ( 言語拡張機能の無効化) オプション を指定することで、Microsoft 拡張機能を無効にできます。To ensure that your programs are fully portable, you can disable Microsoft extensions by specifying the /Za (Disable language extensions) option during compilation. これにより、Microsoft 固有のキーワードの一部が無効になります。When you do this, some Microsoft-specific keywords are disabled.

Microsoft 拡張機能を有効にすると、Microsoft 固有のキーワードをプログラム内で使用できます。When Microsoft extensions are enabled, you can use the Microsoft-specific keywords in your programs. ANSI 準拠のために、これらのキーワードは 2 つのアンダースコアで始まります。For ANSI compliance, these keywords are prefaced by a double underscore. 旧バージョンとの互換性のために、多くの下線付きキーワードの1つのアンダースコアバージョンがサポートされています。For backward compatibility, single-underscore versions of many of the double-underscored keywords are supported. また、 __cdeclは先頭にアンダースコアを付けずに使用できます。In addition, __cdecl is available with no leading underscore.

__Asmキーワードは、C++ の構文に代わるもの asm です。The __asm keyword replaces C++ asm syntax. asm は他の C++ 実装との互換性を維持するために予約されていますが、実装されていません。asm is reserved for compatibility with other C++ implementations, but not implemented. __Asmを使用します。Use __asm.

__based キーワードには、32 ビットおよび 64 ビット ターゲット コンパイルに関する使用制限があります。The __based keyword has limited uses for 32-bit and 64-bit target compilations.

Microsoft 固有の仕様はここまでEND Microsoft Specific

関連項目See also

字句表記規則Lexical Conventions
C++ の演算子、優先順位と結合規則C++ Built-in Operators, Precedence and Associativity