Dela via


winrt::d elegate struct template (C++/WinRT)

En typ som du kan använda för att deklarera en anpassad delegattyp för dina egna händelser. 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. Mer information om det scenariot finns i Parametriserade ombud, enkla signaler och återanrop i ett projekt.

Mer information om hantering av händelser och kodexempel finns i Hantera händelser med hjälp av ombud i C++/WinRT.

Syntax

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

Template parameters

typename... T Ett parameterpaket för variadisk mall som innehåller de typer av parametrar som ombudet skickas när det anropas.

Requirements

Minsta SDK som stöds: Windows SDK version 10.0.17134.0 (Windows 10 version 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() (funktionsanropsoperator) 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 En lambda-typ, eller mer allmänt, en typ som stöder syntax för funktionsanrop, till exempel en std::function.

typename F En kostnadsfri funktionstyp.

typename O En objekttyp.

typename M En typ av pekar-till-medlem-funktion.

Parameters

lHandler Ett lambda-objekt, eller mer allmänt, ett objekt som stöder syntax för funktionsanrop, till exempel en std::function, som hanterar händelsen.

fHandler En pekare-till-fri-funktion som hanterar händelsen.

object Ett objekt vars medlemsfunktioner hanterar händelsen. Beroende på överlagringen kan det här objektet representeras av en råpekare eller en smart pekare.

method En pekar-till-medlem-funktion som hanterar händelsen.

Remarks

Standardkonstruktorn (1) skapar ett tomt ombud.

Konstruktorn (2) skapar ett ombud som anropar lambda med de delegerade argumenten.

Konstruktorn (3) konstruerar ett ombud som anropar funktionen med ombudsargumenten.

Konstruktorn (4) konstruerar ett ombud som anropar det spetsiga objektets -metod med de delegerade argumenten.

Konstruktorn (5) skapar ett ombud som anropar det refererade objektets metod med de delegerade argumenten.

Konstruktorn (6) skapar ett ombud som försöker matcha weak_ref till en stark referens. Om det lyckas anropas objektets metod med ombudsargumenten. annars gör det ingenting.

Konstruktorn (7) skapar ett ombud som försöker matcha weak_ref till en stark referens. Om det lyckas anropar det lambda med de delegerade argumenten; annars gör det ingenting. Kräver C++/WinRT version 2.0.240111.5.

Konstruktorn (8) konstruerar ett ombud som anropar det delade objektets metod med de delegerade argumenten. Kräver C++/WinRT version 2.0.240111.5.

Konstruktorn (9) konstruerar ett ombud som försöker matcha weak_ptr till en delad pekare. Om det lyckas anropas metoden för det delade objektet med ombudsargumenten. annars gör det ingenting. Kräver C++/WinRT version 2.0.240111.5.

Konstruktorn (10) skapar ett ombud som försöker matcha weak_ptr till en delad pekare. Om det lyckas anropar det lambda med de delegerade argumenten; annars gör det ingenting. Kräver C++/WinRT version 2.0.240111.5.

delegate::operator() (funktionsanropsoperator)

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

Syntax

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

See also