Construct from a U

Synopsis

Declared in <beman/optional/optional.hpp>

template<class U>
requires (std::is_constructible_v<T&, U> && !(std::is_same_v<std::remove_cvref_t<U>, in_place_t>) &&
                 !(std::is_same_v<std::remove_cvref_t<U>, optional>) &&
                 !detail::reference_constructs_from_temporary_v<T&, U>)
constexpr
optional(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>);

Description

Constructs the stored value from u if it is convertible to T&. If T& can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.

Template Parameters

Name

Description

U

Parameters

Name

Description

u

Created with MrDocs