クイック リファレンス (C++/CX)
Windows ランタイムは、ユニバーサル Windows プラットフォーム (UWP) アプリをサポートしています。 これらのアプリは、信頼できるオペレーティング システム環境のみで実行され、承認済みの関数、データ型、およびデバイスを使用し、Microsoft Store を通じて配布されます。 C++/CX を使用すると、Windows ランタイム用のアプリの記述が簡略化されます。 この記事はクイック リファレンスです。詳細なドキュメントについては、型システムに関する記事を参照してください。
コマンド ラインでビルドする場合は、/ZW
コンパイラ オプションを使用して UWP アプリまたは Windows ランタイム コンポーネントをビルドします。 Windows ランタイム メタデータ (.winmd) ファイルで定義されている、Windows ランタイム宣言にアクセスするには、#using
ディレクティブまたは /FU
コンパイラ オプションを指定します。 UWP アプリ用のプロジェクトを作成する場合、Visual Studio は既定でこれらのオプションを設定し、すべての Windows ランタイム ライブラリへの参照を追加します。
クイック リファレンス
概念 | 標準 C++ | C++/CX | 解説 |
---|---|---|---|
基本的な型 | C++ の基本型。 | Windows ランタイムで定義された基本的な型を実装する C++/CX の基本型。 | default 名前空間には、C++/CX の組み込みの基本型が含まれています。 コンパイラは、暗黙的に C++/CX の基本型を標準の C++ 型にマップします。名前空間の Platform ファミリには、Windows ランタイムの基本型を実装する型が含まれています。 |
bool |
bool |
8 ビットのブール値。 | |
$ | 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 ビット符号なし整数。 |
|
$ | $ | 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 ) |
T^ 型の、1 次元変更可能または書き込み専用の配列を宣言します。 配列自体も、オブジェクトへのハンドル修飾子を使用して宣言する必要がある、参照カウント オブジェクトです。(配列宣言は、 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 構造体を宣言します。value class は Windows メタデータで表現できますが、標準の C++ class は表現できません。既定の public アクセシビリティを持つ POD 構造体を宣言します。value struct は Windows メタデータで表現できますが、標準の C++ struct は表現できません。 |
インターフェイス宣言 | 純粋仮想関数のみを含む抽象クラス。 | interface class identifier {} interface struct identifier {} |
既定の private アクセシビリティを持つインターフェイスを宣言します。既定の public アクセシビリティを持つインターフェイスを宣言します。 |
委任 | std::function |
public delegate return-type delegate-type-identifier ( [ パラメーター ] ); |
関数呼び出しのように呼び出すことができるオブジェクトを宣言します。 |
イベント | (適用されません) | event delegate-type-identifier event-identifier; delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, パラメーター] ); 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 {} |
パラメーター化されたインターフェイス クラスを宣言します。 パラメーター化されたデリゲートを宣言します。 |
null 許容値型 | std::optional<T> |
Platform::IBox <T> |
スカラー型および value 構造体の変数に、nullptr の値を持たせられます。 |