C++ キーワード

キーワードは、特別な意味を持つ定義済みおよび予約済みの識別子です。 プログラムでは、キーワードを識別子として使用することはできません。 次のキーワードは Microsoft C++ 用に予約されています。 先頭にアンダースコアが付いているキーワードは Microsoft の拡張機能です。

__abstract 2

__alignof 演算子

__asm

__assume

__based

__box 2

__cdecl

__declspec

__delegate 2

__event

__except

__fastcall

__finally

__forceinline

__gc 2

__hook 3

__identifier

__if_exists

__if_not_exists

__inline

__int16

__int32

__int64

__int8

__interface

__leave

__m128

__m128d

__m128i

__m64

__multiple_inheritance

__nogc 2

__noop

__pin 2

__property 2

__raise

__sealed 2

__single_inheritance

__stdcall

__super

__thiscall

__try/__except, __try/__finally

__try_cast 2

__unaligned

__unhook 3

__uuidof

__value 2

__virtual_inheritance

__w64

__wchar_t、wchar_t

abstract

array

auto

bool

break

case

catch

char

class

const

const_cast

continue

decltype

default

delegate

delete

deprecated 1

dllexport 1

dllimport 1

do

double

dynamic_cast

else

enum

列挙型クラス

enum struct

event

explicit

extern

false

finally

float

for

for each、in

friend

friend_as

gcnew

generic

goto

if

initonly

inline

int

interface class

interface struct

interior_ptr

literal

long

mutable

naked 1

namespace

new

new

noinline 1

noreturn 1

nothrow 1

novtable 1

nullptr

operator

private

property

property 1

protected

public

ref class

ref struct

register

reinterpret_cast

return

safecast

sealed

selectany 1

short

signed

sizeof

static

static_assert

static_cast

struct

switch

template

this

thread 1

throw

true

try

typedef

typeid

typeid

typename

union

unsigned

using 宣言、using ディレクティブ

uuid 1

value class

value struct

virtual

void

volatile

while

1   __declspec キーワードの拡張属性。

2   C++ のマネージ拡張にのみ適用。 この構文は現在使用されていません。

3   イベント処理に使用される組み込み関数。

詳細については、「ランタイム プラットフォームのコンポーネントの拡張機能」を参照してください。

Microsoft 固有の仕様 →

Microsoft C++ では、先頭に 2 つのアンダースコアが付いている識別子はコンパイラ実装用に予約されています。 Microsoft の規約では、Microsoft 固有のキーワードには先頭に 2 つのアンダースコアを付けることになっています。 したがって、これらの単語を識別子名として使用することはできません。

Microsoft 拡張機能は既定で有効になっています。 完全に移植性のあるプログラムにするには、ANSI 互換の /Za コマンド ライン オプション (ANSI 互換性維持のためのコンパイル) を指定してコンパイル中に Microsoft 拡張機能を無効にできます。 これにより、Microsoft 固有のキーワードが無効になります。

Microsoft 拡張機能を有効にすると、Microsoft 固有のキーワードをプログラム内で使用できます。 ANSI 準拠のために、これらのキーワードは 2 つのアンダースコアで始まります。 下位互換性維持のために、アンダースコア 2 文字のキーワードの、アンダースコア 1 文字のバージョンがサポートされています。ただし、__except、__finally、__leave、__try は除きます。 また、__cdecl は先頭にアンダースコアなしで使用できます。

__asm キーワードは C++ の asm 構文に置き換わるものです。 asm は他の C++ 実装との互換性を維持するために予約されていますが、実装されていません。 __asm を使用してください。

__based キーワードには、32 ビットおよび 64 ビット ターゲット コンパイルに関する使用制限があります。

参照

関連項目

構文規則

C++ 演算子