Compartir a través de


Plantilla de estructura winrt::d elegate (C++/WinRT)

Tipo que puede usar para declarar un tipo de delegado personalizado para sus propios eventos. 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. Para obtener más información sobre ese escenario, consulte Delegados con parámetros, señales simples y devoluciones de llamada dentro de un proyecto.

Para obtener más información sobre el control de eventos y ejemplos de código, consulta Controlar eventos mediante delegados en C++/WinRT.

Syntax

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

Template parameters

typename... T Un paquete de parámetros de plantilla variadic que contiene los tipos de los parámetros que se pasa el delegado cuando se llama a él.

Requirements

SDK mínimo admitido: SDK de Windows, versión 10.0.17134.0 (Windows 10, versión 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() (operador de llamada de función) 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 LUn tipo lambda, o más generalmente, cualquier tipo que admita la sintaxis de llamada de función, como .std::function

typename F Tipo de función libre.

typename O Tipo de objeto.

typename M Tipo de función de puntero a miembro.

Parameters

lHandler Un objeto lambda, o más generalmente, un objeto que admite la sintaxis de llamada de función, como , std::functionque controlará el evento.

fHandler Función de puntero a libre, que controlará el evento.

object Objeto, una de cuyas funciones miembro controlará el evento. Dependiendo de la sobrecarga, este objeto puede representarse mediante un puntero sin procesar o un puntero inteligente.

method Una función de puntero a miembro, que controlará el evento.

Remarks

El constructor predeterminado (1) construye un delegado vacío.

Constructor (2) construye un delegado que llama a la expresión lambda con los argumentos delegate.

Constructor (3) construye un delegado que llama a la función con los argumentos delegate.

Constructor (4) construye un delegado que llama al método del objeto al que apunta con los argumentos delegate.

Constructor (5) construye un delegado que llama al método del objeto al que se hace referencia con los argumentos delegate.

Constructor (6) construye un delegado que intenta resolver en weak_ref una referencia segura. Si se ejecuta correctamente, llama al método del objeto con los argumentos delegate; de lo contrario, no hace nada.

Constructor (7) construye un delegado que intenta resolver en weak_ref una referencia segura. Si se ejecuta correctamente, llama a la expresión lambda con los argumentos del delegado; de lo contrario, no hace nada. Requiere C++/WinRT versión 2.0.240111.5.

Constructor (8) construye un delegado que llama al método del objeto compartido con los argumentos delegate. Requiere C++/WinRT versión 2.0.240111.5.

Constructor (9) construye un delegado que intenta resolver en weak_ptr un puntero compartido. Si se ejecuta correctamente, llama al método del objeto compartido con los argumentos delegate; de lo contrario, no hace nada. Requiere C++/WinRT versión 2.0.240111.5.

Constructor (10) construye un delegado que intenta resolver en weak_ptr un puntero compartido. Si se ejecuta correctamente, llama a la expresión lambda con los argumentos del delegado; de lo contrario, no hace nada. Requiere C++/WinRT versión 2.0.240111.5.

delegate::operator() (operador de llamada de función)

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

Syntax

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

See also