Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 desse cenário, consulte Delegados parametrizados, sinais simples e retornos de chamada dentro de um projeto.
Para saber mais sobre como manipular eventos e exemplos de código, veja 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 variádico contendo os tipos de parâmetros que o delegado é passado quando é chamado.
Requirements
SDK mínimo suportado: Windows SDK 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 ofereça suporte à sintaxe de chamada de função, como um std::functionarquivo .
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 oferece suporte à sintaxe de chamada de função, como um std::function, que manipulará o evento.
fHandler Um ponteiro para a função livre, que manipulará o evento.
object Um objeto, uma de cujas funções de membro 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 delegate.
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 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 o weak_ref para uma referência forte.
Se bem-sucedido, ele chama o método do objeto com os argumentos delegados; caso contrário, não faz nada.
O construtor (7) constrói um delegado que tenta resolver o weak_ref para uma referência forte.
Se for bem-sucedido, ele chama o lambda com os argumentos delegados; caso contrário, 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 para um ponteiro compartilhado.
Se bem-sucedido, ele chama o método do objeto compartilhado com os argumentos delegados; caso contrário, 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 para um ponteiro compartilhado.
Se for bem-sucedido, ele chama o lambda com os argumentos delegados; caso contrário, 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