mrdocs::Optional::operator=

Assignment operators

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

Copy assignment.

constexpr
Optional&
operator=(Optional const& other) = default;

Assign from another Optional with convertible contained value.

template<typename U>
requires (!std::is_same_v<T, U>)
            && std::is_constructible_v<T, const U&>
            && std::is_assignable_v<T&, const U&>
            && (!detail::ConvertsFromOptional<T, U>::value)
            && (!detail::AssignsFromOptional<T, U>::value)
constexpr
Optional&
operator=(Optional<U> const& u) noexcept(/* see-below */);

Move assignment.

constexpr
Optional&
operator=(Optional&& other) = default;

Assign from another Optional rvalue with convertible contained value.

template<typename U>
requires (!std::is_same_v<T, U>)
            && std::is_constructible_v<T, U>
            && std::is_assignable_v<T&, U>
            && (!detail::ConvertsFromOptional<T, U>::value)
            && (!detail::AssignsFromOptional<T, U>::value)
constexpr
Optional&
operator=(Optional<U>&& u) noexcept(/* see-below */);

Reset to disengaged state from nullptr tag.

constexpr
Optional&
operator=(std::nullptr_t value) noexcept(reset_noex_());

Assign from std::optional lvalue with convertible value.

template<typename U>
requires (!std::is_same_v<T, U>)
            && std::is_constructible_v<T, const U&>
            && std::is_assignable_v<T&, const U&>
            && (!detail::ConvertsFromOptional<T, U>::value)
            && (!detail::AssignsFromOptional<T, U>::value)
constexpr
Optional&
operator=(std::optional<U> const& u) noexcept(/* see-below */);

Assign from a value.

template<typename U = std::remove_cv_t<T>>
requires (!std::is_same_v<Optional, std::remove_cvref_t<U>>)
            && std::is_constructible_v<T, U> && std::is_assignable_v<T&, U>
constexpr
Optional&
operator=(U&& u) noexcept(/* see-below */);

Assign from std::optional rvalue with convertible value.

template<typename U>
requires (!std::is_same_v<T, U>)
            && std::is_constructible_v<T, U>
            && std::is_assignable_v<T&, U>
            && (!detail::ConvertsFromOptional<T, U>::value)
            && (!detail::AssignsFromOptional<T, U>::value)
constexpr
Optional&
operator=(std::optional<U>&& u) noexcept(/* see-below */);

Return Value

*this.

Parameters

Name

Description

u

Source optional.

Created with MrDocs