bsl::swap

Exchange the values of two optionals.

Synopsis

Declared in <bslstl_optional.h>

template<class t_TYPE>
void
swap(
    bsl::optional<t_TYPE>& lhs,
    bsl::optional<t_TYPE>& rhs)
requires BloombergLP::bslma::UsesBslmaAllocator<t_TYPE>::value;

Description

Efficiently exchange the values of the specified lhs and rhs objects. This method provides the no-throw exception-safety guarantee if the template parameter t_TYPE provides that guarantee, lhs and rhs have equal allocators, and lhs.hasValue() == rhs.hasValue().

Parameters

NameDescription
lhsleft-hand operand
rhsright-hand operand