Assignment operators

Synopses

Declared in <bdlb_variant.h>

Assign to this object the type and value currently held by the specified rhs object, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as the type held by the rhs object.

Assign to this object the type and value currently held by the specified rhs object, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as the type held by the rhs object.

Assign to this object the type and value currently held by the specified rhs object, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as the type held by the rhs object. The contents of rhs are either move‐inserted into or move‐assigned to this object with rhs left in a valid but unspecified state.

Assign to this object the type and value currently held by the specified rhs object, 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 with rhs left in a valid but unspecified state.

Assign to this object the specified value of template parameter TYPE, and return a reference providing modifiable access to this object. The value currently held by this variant (if any) is destroyed if that value's type is not the same as TYPE. TYPE must be the same as one of the types that this variant can hold.

Assign to this object the specified value of template parameter TYPE, and return a reference providing modifiable access to this object. The contents of value are moved to this object with value left in a valid but unspecified state. The value currently held by this variant (if any) is destroyed if that value`s type is not the same as TYPE. TYPE must be the same as one of the types that this variant can hold. Note that in C++11 mode, this method does not participate in overload resolution if it would lead to ambiguity with the move‐assignment operator (below).

template<class TYPE>
Variant14<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>&
operator=(TYPE&& value)
requires !bsl::is_same<SelfType,
                      typename bsl::remove_cvref<TYPE>::type>::value;

Created with MrDocs