Edit

Share via


winrt::weak_ref struct template (C++/WinRT)

A type representing a weak reference to a C++/WinRT object or interface. For more info, and code examples, see Strong and weak references in C++/WinRT.

Syntax

template <typename T>
struct weak_ref

Template parameters

typename T The type of C++/WinRT object or interface a weak reference to which is represented by the weak_ref object. This is the type of the weak reference's target.

Requirements

Minimum supported SDK: Windows SDK version 10.0.17134.0 (Windows 10, version 1803)

Namespace: winrt

Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (included by default)

Constructors

Constructor Description
weak_ref::weak_ref constructor Initializes a new instance of the weak_ref struct, optionally with a copy of the input data.

Member functions

Function Description
weak_ref::get function Increments the reference count, and retrieves the C++/WinRT object or interface weakly referenced by the weak_ref object. The way to determine whether or not a weak_ref can be resolved to a strong reference is to call get and try.

Member operators

Operator Description
weak_ref::operator bool Checks whether the weak_ref object owns a weak reference or a nullptr. The way to determine whether or not a weak_ref can be resolved to a strong reference is to call weak_ref::get and try.

weak_ref::weak_ref constructor

Initializes a new instance of the weak_ref struct, optionally with a copy of the input data.

Syntax

weak_ref(std::nullptr_t = nullptr) noexcept;
weak_ref(T const& object);
weak_ref(com_ptr<T> const& object);

Parameters

object A C++/WinRT object or interface or smart pointer that initializes the weak_ref object.

weak_ref::get function

Increments the reference count, and retrieves the C++/WinRT object or interface weakly referenced by the weak_ref object. The way to determine whether or not a weak_ref can be resolved to a strong reference is to call get and try.

Syntax

auto get() const noexcept;

Return value

The C++/WinRT object or interface weakly referenced by the weak_ref object, or nullptr if the weak reference's target has been destroyed.

weak_ref::operator bool

Checks whether the weak_ref object owns a weak reference or a nullptr. The way to determine whether or not a weak_ref can be resolved to a strong reference is to call weak_ref::get and try.

Syntax

explicit operator bool() const noexcept;

Return value

true if the weak_ref object owns a weak reference; false if the weak_ref object owns a nullptr.

See also