Megosztás:


winrt::d elem-szerkezetsablon (C++/WinRT)

Olyan típus, amellyel egyéni meghatalmazotttípust deklarálhat saját eseményeihez. 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. A forgatókönyv további részleteiért lásd a paraméteres meghatalmazottakat, az egyszerű jeleket és a projekten belüli visszahívásokat.

Az események kezelésével és a példakódokkal kapcsolatos további információkért lásd: Események kezelése meghatalmazottak használatával a C++/WinRT-ben.

Syntax

template <typename... T>
struct delegate : Windows::Foundation::IUnknown

Template parameters

typename... T Variadikus sablonparaméter-csomag, amely tartalmazza a delegált által a meghíváskor átadott paraméterek típusait.

Requirements

Minimálisan támogatott SDK: Windows SDK 10.0.17134.0-s verzió (Windows 10, 1803-as verzió)

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
delegált::operátor() (függvényhívási operátor) 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 Lambda típusú vagy általánosabb, bármely olyan típus, amely támogatja a függvényhívás szintaxisát, például egy std::function.

typename F Szabad függvénytípus.

typename O Objektumtípus.

typename M Mutató–tag típusú függvény.

Parameters

lHandler Egy lambda objektum, vagy általánosabban egy függvényhívási szintaxist támogató objektum, például egy std::function, amely kezeli az eseményt.

fHandler Egy mutató–szabad függvény, amely kezeli az eseményt.

object Egy objektum, amelynek egyik tagfüggvénye kezeli az eseményt. A túlterheléstől függően ezt az objektumot egy nyers mutató vagy egy intelligens mutató jelölheti.

method Egy mutató–tag függvény, amely kezeli az eseményt.

Remarks

Az alapértelmezett konstruktor (1) egy üres meghatalmazottat hoz létre.

A konstruktor (2) létrehoz egy delegáltat, amely meghívja a lambdát a delegált argumentumokkal.

A konstruktor (3) egy delegáltat hoz létre, amely meghívja a függvényt a delegált argumentumokkal.

A konstruktor (4) egy meghatalmazottat hoz létre, amely meghívja a hegyes objektum metódusát a delegálási argumentumokkal.

A konstruktor (5) létrehoz egy meghatalmazottat, amely meghívja a hivatkozott objektum metódusát a delegált argumentumokkal.

A konstruktor (6) egy meghatalmazottat hoz létre, amely megpróbálja feloldani a weak_ref problémát egy erős hivatkozással. Ha sikeres, meghívja az objektum metódusát a delegált argumentumokkal; ellenkező esetben semmit sem tesz.

A konstruktor (7) egy delegáltat hoz létre, amely megpróbálja feloldani a weak_ref problémát egy erős hivatkozással. Ha sikeres, meghívja a lambdát a delegált argumentumokkal; ellenkező esetben semmit sem tesz. A C++/WinRT 2.0.240111.5-ös verzióját igényli.

A konstruktor (8) létrehoz egy meghatalmazottat, amely meghívja a megosztott objektum metódusát a delegálási argumentumokkal. A C++/WinRT 2.0.240111.5-ös verzióját igényli.

A konstruktor (9) egy meghatalmazottat hoz létre, amely megkísérli feloldani a weak_ptr megosztott mutatót. Ha sikeres, meghívja a megosztott objektum metódusát a delegált argumentumokkal; ellenkező esetben semmit sem tesz. A C++/WinRT 2.0.240111.5-ös verzióját igényli.

A konstruktor (10) egy meghatalmazottat hoz létre, amely megkísérli feloldani a weak_ptr megosztott mutatót. Ha sikeres, meghívja a lambdát a delegált argumentumokkal; ellenkező esetben semmit sem tesz. A C++/WinRT 2.0.240111.5-ös verzióját igényli.

delegált::operátor() (függvényhívási operátor)

Invokes the delegate represented by the delegate object with the provided arguments.

Syntax

void operator()(T const&... args) const

See also