C++ キーワード
キーワードは、特別な意味を持つ定義済みおよび予約済みの識別子です。 プログラムでは、キーワードを識別子として使用することはできません。 次のキーワードは Microsoft C++ 用に予約されています。 先頭にアンダースコアが付いていて、C++/CX および C++/CLI に指定された名前は Microsoft 拡張機能です。
標準の C++ キーワード
alignas
alignof
and
b
and_eq
b
asm
a
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
f C++ のマネージド拡張にのみ適用。 この構文は現在非推奨とされます。 詳細については、「 Component Extensions for Runtime Platforms」を参照してください。
g C++/CLI に適用。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示