Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um tipo que você pode usar para declarar um tipo de delegado personalizado para seus próprios 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 obter mais detalhes sobre esse cenário, consulte delegados parametrizados, sinais simples e retornos de chamada em um projeto.
Para obter mais informações sobre como lidar com eventos e exemplos de código, consulte Manipular eventos usando delegados em C++/WinRT.
Syntax
template <typename... T>
struct delegate : Windows::Foundation::IUnknown
Template parameters
typename... T Um pacote de parâmetros de modelo variadico que contém os tipos dos parâmetros que o delegado é passado quando é chamado.
Requirements
SDK mínimo suportado: SDK do Windows versão 10.0.17134.0 (Windows 10, versão 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 chamada de função) | 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 Um tipo lambda ou, mais geralmente, qualquer tipo que dê suporte à sintaxe de chamada de função, como um std::function.
typename F Um tipo de função livre.
typename O Um tipo de objeto.
typename M Um tipo de função de ponteiro para membro.
Parameters
lHandler Um objeto lambda ou, mais geralmente, um objeto que dá suporte à sintaxe de chamada de função, como um std::function, que manipulará o evento.
fHandler Uma função de ponteiro para livre, que manipulará o evento.
object Um objeto, uma das funções de membro que manipulará o evento.
Dependendo da sobrecarga, esse objeto pode ser representado por um ponteiro bruto ou um ponteiro inteligente.
method Uma função de ponteiro para membro, que manipulará o evento.
Remarks
O construtor padrão (1) constrói um delegado vazio.
O construtor (2) constrói um delegado que chama o lambda com os argumentos delegados.
O construtor (3) constrói um delegado que chama a função com os argumentos delegados.
O construtor (4) constrói um delegado que chama o método do objeto apontado para o objeto com os argumentos delegados.
O construtor (5) constrói um delegado que chama o método do objeto referenciado com os argumentos delegados.
O construtor (6) constrói um delegado que tenta resolver a weak_ref referência a uma referência forte.
Se tiver êxito, ele chamará o método do objeto com os argumentos delegados; caso contrário, ele não faz nada.
O construtor (7) constrói um delegado que tenta resolver a weak_ref referência para uma referência forte.
Se tiver êxito, ele chamará o lambda com os argumentos delegados; caso contrário, ele não faz nada.
Requer C++/WinRT versão 2.0.240111.5.
O construtor (8) constrói um delegado que chama o método do objeto compartilhado com os argumentos delegados. Requer C++/WinRT versão 2.0.240111.5.
O construtor (9) constrói um delegado que tenta resolver o weak_ptr ponteiro compartilhado.
Se tiver êxito, ele chamará o método do objeto compartilhado com os argumentos delegados; caso contrário, ele não faz nada.
Requer C++/WinRT versão 2.0.240111.5.
O construtor (10) constrói um delegado que tenta resolver o weak_ptr ponteiro compartilhado.
Se tiver êxito, ele chamará o lambda com os argumentos delegados; caso contrário, ele não faz nada.
Requer C++/WinRT versão 2.0.240111.5.
delegate::operator() (operador de chamada de função)
Invokes the delegate represented by the delegate object with the provided arguments.
Syntax
void operator()(T const&... args) const