Sdílet prostřednictvím


winrt::d delegování šablony struktury (C++/WinRT)

Typ, který můžete použít k deklaraci vlastního typu delegáta pro vlastní události. 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. Další podrobnosti o tomto scénáři najdete v tématu Parametrizované delegáty, jednoduché signály a zpětná volání v rámci projektu.

Další informace o zpracování událostí a příkladů kódu najdete v tématu Zpracování událostí pomocí delegátů v jazyce C++/WinRT.

Syntax

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

Template parameters

typename... T Sada parametrů šablony variadic obsahující typy parametrů, které delegát předává při jeho zavolání.

Requirements

Minimální podporovaná sada SDK: Windows SDK verze 10.0.17134.0 (Windows 10, verze 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() (operátor volání funkce) 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 Typ lambda nebo obecně jakýkoli typ, který podporuje syntaxi volání funkce, například std::function.

typename F Volný typ funkce.

typename O Typ objektu.

typename M Typ funkce ukazatele na člena.

Parameters

lHandler Objekt lambda nebo obecně objekt, který podporuje syntaxi volání funkce, jako std::functionje například , který bude zpracovávat událost.

fHandler Funkce ukazatele na volno, která bude zpracovávat událost.

object Objekt, jehož členské funkce budou zpracovávat událost. V závislosti na přetížení může být tento objekt reprezentován nezpracovaným ukazatelem nebo inteligentním ukazatelem.

method Ukazatel na členovou funkci, která bude zpracovávat událost.

Remarks

Výchozí konstruktor (1) vytvoří prázdný delegát.

Konstruktor (2) vytvoří delegáta, který volá lambda s argumenty delegáta.

Konstruktor (3) vytvoří delegáta, který volá funkci s argumenty delegáta.

Konstruktor (4) vytvoří delegáta, který volá metodu odkazování na objekt s argumenty delegáta.

Konstruktor (5) vytvoří delegáta, který volá metodu odkazovaného objektu s argumenty delegáta.

Konstruktor (6) vytvoří delegáta, který se pokusí přeložit weak_ref na silný odkaz. V případě úspěchu pak volá metodu objektu s argumenty delegáta; jinak to nic nedělá.

Konstruktor (7) vytvoří delegáta, který se pokusí přeložit weak_ref na silný odkaz. V případě úspěchu volá lambda s argumenty delegáta; jinak to nic nedělá. Vyžaduje C++/WinRT verze 2.0.240111.5.

Konstruktor (8) vytvoří delegáta, který volá metodu sdíleného objektu s argumenty delegáta. Vyžaduje C++/WinRT verze 2.0.240111.5.

Konstruktor (9) vytvoří delegáta, který se pokusí přeložit na weak_ptr sdílený ukazatel. V případě úspěchu pak volá metodu sdíleného objektu s argumenty delegáta; jinak to nic nedělá. Vyžaduje C++/WinRT verze 2.0.240111.5.

Konstruktor (10) vytvoří delegáta, který se pokusí přeložit na weak_ptr sdílený ukazatel. V případě úspěchu volá lambda s argumenty delegáta; jinak to nic nedělá. Vyžaduje C++/WinRT verze 2.0.240111.5.

delegate::operator() (operátor volání funkce)

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

Syntax

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

See also