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 */);
Parameters
Name |
Description |
u |
Source optional. |
Created with MrDocs