Condividi tramite


Modello di struct winrt::d elegate (C++/WinRT)

Tipo che è possibile usare per dichiarare un tipo delegato personalizzato per gli eventi personalizzati. 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. Per altri dettagli su questo scenario, vedere Delegati con parametri, segnali semplici e callback all'interno di un progetto.

Per altre info sulla gestione degli eventi e sugli esempi di codice, vedi Gestire gli eventi usando delegati in C++/WinRT.

Syntax

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

Template parameters

typename... T Pacchetto di parametri di modello variadic contenente i tipi dei parametri passati dal delegato quando viene chiamato.

Requirements

SDK minimo supportato: Windows SDK versione 10.0.17134.0 (Windows 10, versione 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() (operatore di chiamata di funzione) 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 LTipo lambda, o più in genere, qualsiasi tipo che supporta la sintassi delle chiamate di funzione, ad esempio .std::function

typename F Tipo di funzione libero.

typename O Tipo di oggetto.

typename M Tipo di funzione da puntatore a membro.

Parameters

lHandler Oggetto lambda, o più in genere, un oggetto che supporta la sintassi delle chiamate di funzione, ad esempio , std::functionche gestirà l'evento.

fHandler Puntatore a funzione libera, che gestirà l'evento.

object Oggetto, uno dei cui funzioni membro gestirà l'evento. A seconda dell'overload, questo oggetto può essere rappresentato da un puntatore non elaborato o da un puntatore intelligente.

method Puntatore a funzione membro, che gestirà l'evento.

Remarks

Il costruttore predefinito (1) costruisce un delegato vuoto.

Il costruttore (2) costruisce un delegato che chiama l'espressione lambda con gli argomenti del delegato.

Il costruttore (3) costruisce un delegato che chiama la funzione con gli argomenti del delegato.

Il costruttore (4) costruisce un delegato che chiama il metodo dell'oggetto puntato con gli argomenti delegati.

Il costruttore (5) costruisce un delegato che chiama il metodo dell'oggetto a cui si fa riferimento con gli argomenti delegati.

Il costruttore (6) costruisce un delegato che tenta di risolvere l'oggetto weak_ref in un riferimento sicuro. In caso di esito positivo, chiama il metodo dell'oggetto con gli argomenti delegati; in caso contrario, non fa nulla.

Il costruttore (7) costruisce un delegato che tenta di risolvere l'oggetto weak_ref in un riferimento sicuro. In caso di esito positivo, chiama l'espressione lambda con gli argomenti delegati; in caso contrario, non fa nulla. Richiede C++/WinRT versione 2.0.240111.5.

Il costruttore (8) costruisce un delegato che chiama il metodo dell'oggetto condiviso con gli argomenti delegati. Richiede C++/WinRT versione 2.0.240111.5.

Il costruttore (9) costruisce un delegato che tenta di risolvere l'oggetto weak_ptr in un puntatore condiviso. In caso di esito positivo, chiama il metodo dell'oggetto condiviso con gli argomenti delegati; in caso contrario, non fa nulla. Richiede C++/WinRT versione 2.0.240111.5.

Il costruttore (10) costruisce un delegato che tenta di risolvere l'oggetto weak_ptr in un puntatore condiviso. In caso di esito positivo, chiama l'espressione lambda con gli argomenti delegati; in caso contrario, non fa nulla. Richiede C++/WinRT versione 2.0.240111.5.

delegate::operator() (operatore di chiamata di funzione)

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

Syntax

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

See also