独自のイベントのカスタム デリゲート型を宣言するために使用できる型。 delegate supports any number of parameters, and they are not limited to Windows Runtime types.
The delegate type has no ABI (it has no interface for use across application binaries), so its use case is when you're both authoring and consuming an event within the same project. そのシナリオの詳細については、「 パラメーター化されたデリゲート、単純なシグナル、およびプロジェクト内のコールバック」を参照してください。
イベントの処理とコード例の詳細については、「 C++/WinRT でデリゲートを使用してイベントを処理する」を参照してください。
Syntax
template <typename... T>
struct delegate : Windows::Foundation::IUnknown
Template parameters
typename... T デリゲートが呼び出されたときに渡されるパラメーターの型を含む可変テンプレート パラメーター パック。
Requirements
サポートされている最小 SDK: Windows SDK バージョン 10.0.17134.0 (Windows 10 バージョン 1803)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (included by default)
Constructors
| Constructor | Description |
|---|---|
| delegate::delegate constructor | Initializes a new instance of the delegate struct from the input data. |
Member operators
| Operator | Description |
|---|---|
| delegate::operator() (関数呼び出し演算子) | Invokes the delegate represented by the delegate object with the provided arguments. |
delegate::delegate constructor
Initializes a new instance of the delegate struct from the input data.
Syntax
delegate(std::nullptr_t = nullptr) noexcept; // (1)
template <typename L>
delegate(L lHandler); // (2)
template <typename F>
delegate(F* fHandler); // (3)
template <typename O, typename M>
delegate(O* object, M method); // (4)
template <typename O, typename M>
delegate(winrt::com_ptr<O>&& object, M method); // (5)
template <typename O, typename M>
delegate(winrt::weak_ref<O>&& object, M method); // (6)
template <typename O, typename M>
delegate(winrt::weak_ref<O>&& object, L lHandler); // (7)
template <typename O, typename M>
delegate(std::shared_ptr<O>&& object, M method); // (8)
template <typename O, typename M>
delegate(std::weak_ptr<O>&& object, M method); // (9)
template <typename O, typename M>
delegate(std::weak_ptr<O>&& object, L lHandler); // (10)
Template parameters
typename L ラムダ型(より一般的には、 std::functionなど、関数呼び出し構文をサポートする任意の型)。
typename F 無料の関数型。
typename O オブジェクト型。
typename M メンバー関数へのポインター型。
Parameters
lHandler ラムダ オブジェクト、またはより一般的には、イベントを処理する std::functionなどの関数呼び出し構文をサポートするオブジェクト。
fHandler イベントを処理するフリー関数へのポインター。
object イベントを処理するメンバー関数の 1 つであるオブジェクト。
オーバーロードによっては、このオブジェクトは生ポインターまたはスマート ポインターによって表される場合があります。
method イベントを処理するメンバー関数へのポインター。
Remarks
既定のコンストラクター (1) は、空のデリゲートを構築します。
コンストラクター (2) は、デリゲート引数を使用してラムダを呼び出すデリゲートを構築します。
コンストラクター (3) は、デリゲート引数を使用して関数を呼び出すデリゲートを構築します。
コンストラクター (4) は、デリゲート引数を使用して、ポイント先オブジェクトのメソッドを呼び出すデリゲートを構築します。
コンストラクター (5) は、参照先オブジェクトのメソッドをデリゲート引数で呼び出すデリゲートを構築します。
コンストラクター (6) は、 weak_ref を厳密な参照に解決しようとするデリゲートを構築します。
成功した場合は、デリゲート引数を使用してオブジェクトのメソッドを呼び出します。それ以外の場合は何も行いません。
コンストラクター (7) は、 weak_ref を厳密な参照に解決しようとするデリゲートを構築します。
成功した場合は、デリゲート引数を使用してラムダを呼び出します。それ以外の場合は何も行いません。
C++/WinRT バージョン 2.0.240111.5 が必要です。
コンストラクター (8) は、デリゲート引数を使用して共有オブジェクトのメソッドを呼び出すデリゲートを構築します。 C++/WinRT バージョン 2.0.240111.5 が必要です。
コンストラクター (9) は、 weak_ptr を共有ポインターに解決しようとするデリゲートを構築します。
成功した場合は、デリゲート引数を使用して共有オブジェクトのメソッドを呼び出します。それ以外の場合は何も行いません。
C++/WinRT バージョン 2.0.240111.5 が必要です。
コンストラクター (10) は、 weak_ptr を共有ポインターに解決しようとするデリゲートを構築します。
成功した場合は、デリゲート引数を使用してラムダを呼び出します。それ以外の場合は何も行いません。
C++/WinRT バージョン 2.0.240111.5 が必要です。
delegate::operator() (関数呼び出し演算子)
Invokes the delegate represented by the delegate object with the provided arguments.
Syntax
void operator()(T const&... args) const
See also
- winrt namespace
- C++/WinRT でイベントを作成する
- C++/WinRT でデリゲートを使用してイベントを処理する
- winrt::event 構造体テンプレート