다음을 통해 공유


winrt::d 구조체 템플릿 선택 취소(C++/WinRT)

사용자 고유의 이벤트에 대한 사용자 지정 대리자 형식을 선언하는 데 사용할 수 있는 형식입니다. 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
delegate::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

람다 개체 또는 더 일반적으로 이벤트를 처리할 함수 호출 구문(예: />)을 지원하는 개체입니다.

fHandler 이벤트를 처리할 포인터-자유 함수입니다.

object 멤버 함수 중 하나가 이벤트를 처리할 개체입니다. 오버로드에 따라 이 개체는 원시 포인터 또는 스마트 포인터로 표시될 수 있습니다.

method 이벤트를 처리할 포인터-멤버-함수입니다.

Remarks

기본 생성자(1)는 빈 대리자를 생성합니다.

생성자(2)는 대리자 인수를 사용하여 람다를 호출하는 대리자를 생성합니다.

생성자(3)는 대리자 인수를 사용하여 함수를 호출하는 대리자를 생성합니다.

생성자(4)는 대리자 인수를 사용하여 뾰족한 개체의 메서드를 호출하는 대리자를 생성합니다.

생성자(5)는 대리자 인수를 사용하여 참조된 개체의 메서드를 호출하는 대리자를 생성합니다.

생성자(6)는 강력한 참조로 확인 weak_ref 하려고 시도하는 대리자를 생성합니다. 성공하면 대리자 인수를 사용하여 개체의 메서드를 호출합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.

생성자(7)는 강력한 참조로 확인 weak_ref 하려고 시도하는 대리자를 생성합니다. 성공하면 대리자 인수를 사용하여 람다를 호출합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다. C++/WinRT 버전 2.0.240111.5가 필요합니다.

생성자(8)는 대리자 인수를 사용하여 공유 개체의 메서드를 호출하는 대리자를 생성합니다. C++/WinRT 버전 2.0.240111.5가 필요합니다.

생성자(9)는 공유 포인터로 확인 weak_ptr 하려고 시도하는 대리자를 생성합니다. 성공하면 대리자 인수를 사용하여 공유 개체의 메서드를 호출합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다. C++/WinRT 버전 2.0.240111.5가 필요합니다.

생성자(10)는 공유 포인터로 확인 weak_ptr 하려고 시도하는 대리자를 생성합니다. 성공하면 대리자 인수를 사용하여 람다를 호출합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다. C++/WinRT 버전 2.0.240111.5가 필요합니다.

delegate::operator()(함수 호출 연산자)

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

Syntax

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

See also