Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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