Assignment operators
Synopses
Declared in <bdlb_nullablevalue.h>
Assign to this object the value of the specified rhs, and return a reference providing modifiable access to this object.
NullableValue<TYPE>&
operator=(NullableValue const& rhs);
Assign to this object the value of the specified rhs object, and return a non‐`const` reference to this object.
Assign to this object the null value if the specified rhs object is null, and the value of rhs.value() (of BDE_OTHER_TYPE) converted to TYPE otherwise. Return a reference providing modifiable access to this object. Note that this method will fail to compile if TYPE and `BDE_OTHER_TYPE' are not compatible.
template<class BDE_OTHER_TYPE>
NullableValue<TYPE>&
operator=(NullableValue<BDE_OTHER_TYPE> const& rhs);
Disengage this object if the specified rhs object is disengaged, and assign to this object the value of rhs.value() (of t_ANY_TYPE) converted to t_TYPE otherwise. Return a reference providing modifiable access to this object. Note that this method does not participate in overload resolution unless t_TYPE and t_ANY_TYPE are compatible. This assignment operator can be called in constant expressions only when neither t_TYPE nor t_ANY_TYPE is allocator‐aware.
template<class t_ANY_TYPE>
constexpr
optional<t_TYPE>&
operator=(optional<t_ANY_TYPE> const& rhs);
Reset this object to be disengaged and return a reference providing modifiable access to this object. This assignment operator can be called in constant expressions only when t_TYPE is not allocator‐aware.
constexpr
optional<t_TYPE>&
operator=(bsl::nullopt_t) noexcept;
Assign to this object the value of the specified rhs, and return a reference providing modifiable access to this object. The contents of rhs are either move‐inserted into or move‐assigned to this object. rhs is left in a valid but unspecified state.
Assign to this object the value of the specified rhs, and return a reference providing modifiable access to this object. The contents of rhs are either move‐inserted into or move‐assigned to this object. rhs is left in a valid but unspecified state.
Assign to this object the value of the specified rhs object, and return a non‐`const` reference to this object. The allocators of this object and rhs both remain unchanged. The contents of rhs are either move‐constructed into or move‐assigned to this object. rhs is left in a valid but unspecified state.
Assign to this object the value of the specified rhs, and return a reference providing modifiable access to this object.
NullableValue<TYPE>&
operator=(TYPE const& rhs);
Reset this object to the default constructed state (i.e., to have the null value), and return a reference providing modifiable access to this object.
NullableValue<TYPE>&
operator=(bsl::nullopt_t const&) noexcept;
Assign to this object the null value if the specified rhs object is null, and the value of rhs.value() (of BDE_OTHER_TYPE) converted to TYPE otherwise. Return a reference providing modifiable access to this object. Note that this method will fail to compile if TYPE and `BDE_OTHER_TYPE' are not compatible.
template<class BDE_OTHER_TYPE>
NullableValue<TYPE>&
operator=(BloombergLP::bslmf::MovableRef_Deduced<NullableValue<BDE_OTHER_TYPE>> rhs);
Disengage this object if the specified rhs object is disengaged, and move assign to this object the value of rhs.value() (of t_ANY_TYPE) converted to t_TYPE otherwise. Return a reference providing modifiable access to this object. Note that this method does not participate in overload resolution unless t_TYPE and t_ANY_TYPE are compatible. This assignment operator can be called in constant expressions only when neither t_TYPE nor t_ANY_TYPE is allocator‐aware.
template<class t_ANY_TYPE>
constexpr
optional<t_TYPE>&
operator=(BloombergLP::bslmf::MovableRef_Deduced<optional<t_ANY_TYPE>> rhs);
Assign to this object the null value if the specified rhs object is null, and the value of rhs.value() (of BDE_OTHER_TYPE) converted to TYPE otherwise. Return a reference providing modifiable access to this object. Note that this method will fail to compile if TYPE and `BDE_OTHER_TYPE' are not compatible.
template<class BDE_OTHER_TYPE>
NullableValue<TYPE>&
operator=(BloombergLP::bslmf::MovableRef_Deduced<bsl::optional<BDE_OTHER_TYPE>> rhs)
requires bsl::is_convertible<BDE_OTHER_TYPE, TYPE>::value;
Assign to this object the value of the specified rhs object (of BDE_OTHER_TYPE) converted to TYPE, and return a reference providing modifiable access to this object. Note that this method will fail to compile if TYPE and BDE_OTHER_TYPE are not compatible. Note that on C++03 but not in C++11 and beyond, if BDE_OTHER_TYPE is bslmf::MovableRef<TYPE3> and TYPE supports moves and/or assigns from that type, a move rather than a copy may take place.
template<class BDE_OTHER_TYPE>
NullableValue<TYPE>&
operator=(BDE_OTHER_TYPE const& rhs);
Assign to this object the null value if the specified rhs object is null, and the value of rhs.value() (of BDE_OTHER_TYPE) converted to TYPE otherwise. Return a reference providing modifiable access to this object. Note that this method will fail to compile if TYPE and `BDE_OTHER_TYPE' are not compatible.
template<class BDE_OTHER_TYPE>
NullableValue<TYPE>&
operator=(bsl::optional<BDE_OTHER_TYPE> const& rhs)
requires bsl::is_convertible<BDE_OTHER_TYPE, TYPE>::value;
Disengage this object if the specified rhs object is disengaged, and assign to this object the value of rhs.value() (of t_ANY_TYPE) converted to t_TYPE otherwise. Return a reference providing modifiable access to this object. Note that this method does not participate in overload resolution unless t_TYPE and t_ANY_TYPE are compatible. This assignment operator can be called in constant expressions only when t_TYPE is not allocator‐aware.
template<class t_ANY_TYPE = t_TYPE>
constexpr
optional<t_TYPE>&
operator=(std::optional<t_ANY_TYPE> const& rhs);
Assign to this object the value of the specified rhs object converted to t_TYPE, and return a reference providing modifiable access to this object. Note that this method may invoke assignment from rhs, or construction from rhs, depending on whether this object is engaged. This assignment operator does not participate in overload resolution if t_ANY_TYPE is possibly cv‐qualified bsl::optional<t_TYPE>. Also note that an assignment of the form o = {};, where o is of type optional, will always assign to o the empty state, and never call this overload (see implementation notes). This assignment operator can be called in constant expressions only when t_TYPE is not allocator‐aware.
template<class t_ANY_TYPE = t_TYPE>
constexpr
optional<t_TYPE>&
operator=(t_ANY_TYPE&& rhs);
Disengage this object if the specified rhs object is disengaged, and move assign to this object the value of rhs.value() (of t_ANY_TYPE) converted to t_TYPE otherwise. Return a reference providing modifiable access to this object. Note that this method does not participate in overload resolution unless t_TYPE and t_ANY_TYPE are compatible. This assignment operator can be called in constant expressions only when t_TYPE is not allocator‐aware.
template<class t_ANY_TYPE = t_TYPE>
constexpr
optional<t_TYPE>&
operator=(std::optional<t_ANY_TYPE>&& rhs);
Created with MrDocs