クイック リファレンス (C++/CX)

Windows ランタイムでは、ユニバーサル Windows プラットフォーム (UWP) アプリがサポートされています。 これらのアプリは、信頼できるオペレーティング システム環境でのみ実行され、承認された関数、データ型、デバイスを使用し、Microsoft Store を通じて配布されます。 C++/CX を使用すると、Windows ランタイム用のアプリの記述が簡略化されます。 この記事はクイック リファレンスです。詳細なドキュメントについては、「型システム」を参照してください

コマンド ラインでビルドする場合は、コンパイラ オプションを/ZW使用して UWP アプリまたは Windows ランタイム コンポーネントをビルドします。 Windows ランタイム メタデータ (.winmd) ファイルで定義されているWindows ランタイム宣言にアクセスするには、ディレクティブまたはコンパイラ オプションを/FU指定#usingします。 UWP アプリ用のプロジェクトを作成する場合、Visual Studio は既定でこれらのオプションを設定し、すべての Windows ランタイム ライブラリへの参照を追加します。

クイック リファレンス

概念 標準 C++ C++/CX 解説
基本的な型 C++ の基本型。 Windows ランタイムで定義された基本的な型を実装する C++/CX の基本型。 default 名前空間には、C++/CX の組み込みの基本型が含まれています。 コンパイラは、暗黙的に C++/CX の基本型を標準の C++ 型にマップします。

名前空間の Platform ファミリには、Windows ランタイムの基本型を実装する型が含まれています。
bool bool 8 ビットのブール値。
wchar_t, char16_t char16 Unicode (UTF-16) コード ポイントを表す 16 ビットの数字以外の値。
short

unsigned short
int16

uint16
16 ビット符号付き整数。

16 ビット符号なし整数。
int

unsigned int
int

uint32
32 ビット符号付き整数。

32 ビット符号なし整数
long long または __int64

unsigned long long
int64

uint64
64 ビット符号付き整数。

64 ビット符号なし整数。
float, double float32, float64 32 ビットまたは 64 ビットの IEEE 754 浮動小数点数。
enum enum class

または

enum struct
32 ビット列挙体。
(適用されません) Platform::Guid Platform 名前空間での 128 ビット非数値 (GUID)。
std::time_get Windows::Foundation::DateTime 日付と時刻の構造体。
(適用されません) Windows::Foundation::TimeSpan 期間の構造体。
(適用されません) Platform::Object^ Windows ランタイムの型システムの C++ ビューにあり、参照カウントが設定された基本オブジェクト。
std::wstring

L"..."
Platform::String^ Platform::String^ は、テキストを表す Unicode 文字の、参照カウントが設定された変更不可能なシーケンスです。
ポインター オブジェクトへのポインター (*):

std::shared_ptr
オブジェクトへのハンドル (^、「ハット」と発音):

T^ identifier
Windows ランタイムのすべてのクラスは、オブジェクトへのハンドル修飾子を使用して宣言されています。 オブジェクトのメンバーにアクセスするには、矢印 (->) クラス メンバー アクセス演算子を使用します。

帽子修飾子は、"自動的に参照カウントされるWindows ランタイム オブジェクトへのポインター" を意味します。より正確には、オブジェクトへのハンドルは、コンパイラがオブジェクトの参照カウントを自動的に管理するコードを挿入し、参照カウントがゼロになった場合にオブジェクトを削除する必要があることを宣言します
リファレンス オブジェクトへの参照 (&):

T& identifier
トラッキング参照 (%):

T% identifier
追跡参照修飾子を使用して宣言できるのは、Windows ランタイム型のみです。 オブジェクトのメンバーにアクセスするには、ドット (.) クラス メンバー アクセス演算子を使用します。

追跡参照とは、"自動的に参照カウントされるWindows ランタイム オブジェクトへの参照" を意味します。より正確には、追跡参照は、コンパイラがオブジェクトの参照カウントを自動的に管理するコードを挿入する必要があることを宣言します。 参照カウントが 0 になった場合、コードはオブジェクトを削除します。
動的な型の宣言 new ref new Windows ランタイム オブジェクトを割り当ててから、そのオブジェクトへのハンドルを返します。
オブジェクトの有効期間の管理 delete identifier

delete[] identifier
(デストラクターを呼び出します。) 有効期間は、参照カウントによって決まります。 デストラクターを呼び出す delete 呼び出しですが、それ自体はメモリを解放しません。
配列の宣言 T identifier[]

std::array identifier
Array<T^>^ identifier( size )

または

WriteOnlyArray<T^> identifier( size )
型の 1 次元変更可能または書き込み専用の配列を宣言します T^。 配列自体も、オブジェクトへのハンドル修飾子を使用して宣言する必要がある、参照カウント オブジェクトです。

(配列宣言は、 Platform 名前空間にあるヘッダー テンプレート クラスを使用します。)
クラス宣言 class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
既定 private のアクセシビリティを持つランタイム クラスを宣言します。

既定 public のアクセシビリティを持つランタイム クラスを宣言します。
構造体宣言 struct identifier {}

(つまり、PODS (Plain Old Data Structure))
value class identifier {}

value struct identifier {}
既定 private のアクセシビリティを持つ POD 構造体を宣言します。

A は value class Windows メタデータで表すことができますが、標準の C++ class を表すことはできません。

既定 public のアクセシビリティを持つ POD 構造体を宣言します。

A は value struct Windows メタデータで表すことができますが、標準の C++ struct を表すことはできません。
インターフェイス宣言 純粋仮想関数のみを含む抽象クラス。 interface class identifier {}

interface struct identifier {}
既定 private のアクセシビリティを持つインターフェイスを宣言します。

既定 public のアクセシビリティを持つインターフェイスを宣言します。
代理人 std::function public delegate return-type delegate-type-identifier ([ parameters ]); 関数呼び出しのように呼び出すことができるオブジェクトを宣言します。
イベント (適用されません) event delegate-type-identifier event-identifier;

delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this[,parameters]);

event-identifier += *delegate-identifier;

または

EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier;

または

auto token-identifier = object.event-identifier::add( delegate-identifier );

object.event-identifier -= token-identifier;

または

object.event-identifier::remove( token-identifier );
イベントが event 発生したときに呼び出されるイベント ハンドラー (デリゲート) のコレクションを格納するオブジェクトを宣言します。

イベント ハンドラーを作成します。

イベント ハンドラーを追加します。

イベント ハンドラーを追加すると、イベント トークン (token-identifier) が返されます。 明示的にイベント ハンドラーを削除することを意図している場合は、後で使用できるようにイベント トークンを保存する必要があります。

イベント ハンドラーを削除します。

イベント ハンドラーを削除するには、イベント ハンドラーが追加されたときに保存したイベント トークンを指定する必要があります。
プロパティ (適用されません) property T identifier;

property T identifier[ index ];

property T default[ index ];
クラス メンバー関数またはオブジェクト メンバー関数が、データ メンバーまたはインデックス付きの配列要素へのアクセスで使用されたのと同じ構文を使用してアクセスされることを宣言します。

クラス オブジェクト メンバー関数またはオブジェクト メンバー関数のインデックス付きプロパティを宣言します。

オブジェクト メンバー関数のインデックス付きプロパティを宣言します。

クラス メンバー関数のインデックス付きプロパティを宣言します。
パラメーター化された型 テンプレートの使用 generic <typename T> interface class identifier {}

generic <typename T > delegate[return-type]delegate-identifier() {}
パラメーター化されたインターフェイス クラスを宣言します。

パラメーター化されたデリゲートを宣言します。
null 許容値型 std::optional<T> Platform::IBox <T> スカラー型と value 構造体の変数の値 nullptrを有効にします。

関連項目

C++/CX 言語リファレンス