Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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