Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Тип, который можно использовать для объявления пользовательского типа делегата для собственных событий. 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. Дополнительные сведения об этом сценарии см. в разделе Параметризованные делегаты, простые сигналы и обратные вызовы в проекте.
Дополнительные сведения об обработке событий и примерах кода см. в разделе "Обработка событий с помощью делегатов в C++/WinRT".
Syntax
template <typename... T>
struct delegate : Windows::Foundation::IUnknown
Template parameters
typename... T Пакет параметров шаблона variadic, содержащий типы параметров, передаваемых делегатом при вызове.
Requirements
Минимальный поддерживаемый SDK: Windows SDK версии 10.0.17134.0 (Windows 10, версия 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 |
|---|---|
| делегат::operator() (оператор вызова функции) | 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Лямбда-тип или, как правило, любой тип, поддерживающий синтаксис вызова функции, например.std::function
typename F Тип бесплатной функции.
typename O Тип объекта.
typename M Тип функции указателя на член.
Parameters
lHandler Лямбда-объект или, как правило, объект, поддерживающий синтаксис вызова функции, например std::functionобъект, который будет обрабатывать событие.
fHandler Функция указателя на бесплатную, которая будет обрабатывать событие.
object Объект, один из функций-членов которого будет обрабатывать событие.
В зависимости от перегрузки этот объект может быть представлен необработанным указателем или смарт-указателем.
method Функция указателя на член, которая будет обрабатывать событие.
Remarks
Конструктор по умолчанию (1) создает пустой делегат.
Конструктор (2) создает делегат, который вызывает лямбда-код с аргументами делегата.
Конструктор (3) создает делегат, который вызывает функцию с аргументами делегата.
Конструктор (4) создает делегат, который вызывает метод объекта, указывающий на объект, с аргументами делегата.
Конструктор (5) создает делегат, который вызывает метод ссылочного объекта с аргументами делегата.
Конструктор (6) создает делегат, который пытается разрешить weak_ref строгую ссылку.
В случае успешного выполнения он вызывает метод объекта с аргументами делегата; в противном случае это ничего не делает.
Конструктор (7) создает делегат, который пытается разрешить weak_ref строгую ссылку.
В случае успешного выполнения он вызывает лямбда-код с аргументами делегата; в противном случае это ничего не делает.
Требуется C++/WinRT версии 2.0.24011.5.
Конструктор (8) создает делегат, который вызывает метод общего объекта с аргументами делегата. Требуется C++/WinRT версии 2.0.24011.5.
Конструктор (9) создает делегат, который пытается разрешить weak_ptr общий указатель.
В случае успешного выполнения метод общего объекта вызывается с аргументами делегата; в противном случае это ничего не делает.
Требуется C++/WinRT версии 2.0.24011.5.
Конструктор (10) создает делегат, который пытается разрешить weak_ptr общий указатель.
В случае успешного выполнения он вызывает лямбда-код с аргументами делегата; в противном случае это ничего не делает.
Требуется C++/WinRT версии 2.0.24011.5.
делегат::operator() (оператор вызова функции)
Invokes the delegate represented by the delegate object with the provided arguments.
Syntax
void operator()(T const&... args) const