[#bsl-operator_3way-0f1] = xref:bsl.adoc[bsl]::operator<=> :relfileprefix: ../ :mrdocs: Three‐way comparison operators == Synopses Declared in `<bslstl_deque.h>` Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` sets by using the comparison operators of `KEY` on each element; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class KEY, class COMPARATOR, class ALLOCATOR> xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<KEY>] xref:bsl/operator_3way-0da.adoc[operator<=>]( xref:bsl/set-0d.adoc[set<KEY, COMPARATOR, ALLOCATOR>] const& lhs, xref:bsl/set-0d.adoc[set<KEY, COMPARATOR, ALLOCATOR>] const& rhs); ---- [.small]#xref:bsl/operator_3way-0da.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` lists by using the comparison operators of `VALUE` on each element; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class VALUE, class ALLOCATOR> xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<VALUE>] xref:bsl/operator_3way-0f6.adoc[operator<=>]( xref:bsl/list-054.adoc[list<VALUE, ALLOCATOR>] const& lhs, xref:bsl/list-054.adoc[list<VALUE, ALLOCATOR>] const& rhs); ---- [.small]#xref:bsl/operator_3way-0f6.adoc[_» more..._]# Return the three‐way comparison result of the specified `lhs` and `rhs` queues by comparing their underlying containers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class VALUE, three_way_comparable CONTAINER> compare_three_way_result_t<CONTAINER> xref:bsl/operator_3way-08d.adoc[operator<=>]( xref:bsl/queue-0a5.adoc[queue<VALUE, CONTAINER>] const& lhs, xref:bsl/queue-0a5.adoc[queue<VALUE, CONTAINER>] const& rhs); ---- [.small]#xref:bsl/operator_3way-08d.adoc[_» more..._]# Return the three‐way comparison of the specified queues; see the non‐member `operator<=>` in the `bsl` namespace. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- compare_three_way_result_t<CONTAINER2> xref:bsl/operator_3way-036.adoc[operator<=>]( xref:bsl/queue-0a5.adoc[queue<VALUE2, CONTAINER2>] const&, xref:bsl/queue-0a5.adoc[queue<VALUE2, CONTAINER2>] const&); ---- [.small]#xref:bsl/operator_3way-036.adoc[_» more..._]# If `lhs` and `rhs` are not valueless by exception and hold the same alternative `i`, return `get(lhs) <=> get(rhs)` . If `lhs` and `rhs` are not valueless by exception and hold the aalternatives `i` and `j` respectively, return `i<=>j`. Return `strong_ordering::equal` if both variants are valueless by exception. Return `strong_ordering::less` if `lhs` is valueless by exception. Return `strong_ordering::greater` if `rhs` is valueless by exception. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... t_ALTS> requires (std::three_way_comparable<t_ALTS> && ...) constexpr std::common_comparison_category_t<std::compare_three_way_result_t<t_ALTS>...> xref:bsl/operator_3way-09.adoc[operator<=>]( xref:bsl/variant.adoc[variant<t_ALTS...>] const& lhs, xref:bsl/variant.adoc[variant<t_ALTS...>] const& rhs); ---- [.small]#xref:bsl/operator_3way-09.adoc[_» more..._]# Same as the related overload above for `operator<=>`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class VALUE, three_way_comparable CONTAINER> compare_three_way_result_t<CONTAINER> xref:bsl/operator_3way-01d.adoc[operator<=>]( xref:bsl/stack-05.adoc[stack<VALUE, CONTAINER>] const& lhs, xref:bsl/stack-05.adoc[stack<VALUE, CONTAINER>] const& rhs); ---- [.small]#xref:bsl/operator_3way-01d.adoc[_» more..._]# Same as the related overload above for `operator<=>`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- compare_three_way_result_t<CONT> xref:bsl/operator_3way-03e.adoc[operator<=>]( xref:bsl/stack-05.adoc[stack<VAL, CONT>] const&, xref:bsl/stack-05.adoc[stack<VAL, CONT>] const&); ---- [.small]#xref:bsl/operator_3way-03e.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` containers by using the comparison operators of `VALUE_TYPE` on each element; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class VALUE_TYPE, class ALLOCATOR> xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<VALUE_TYPE>] xref:bsl/operator_3way-07cc.adoc[operator<=>]( xref:bsl/deque-0c.adoc[deque<VALUE_TYPE, ALLOCATOR>] const& lhs, xref:bsl/deque-0c.adoc[deque<VALUE_TYPE, ALLOCATOR>] const& rhs); ---- [.small]#xref:bsl/operator_3way-07cc.adoc[_» more..._]# Perform a three‐way comparison of the specified `lhs` and the specified `rhs` objects by using the comparison operators of `t_LHS` and `t_RHS`; return the result of that comparison. This function can be called in constant expressions only if `t_LHS` is not allocator‐aware. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_LHS, three_way_comparable_with<t_LHS> t_RHS> constexpr compare_three_way_result_t<t_LHS, t_RHS> xref:bsl/operator_3way-0a.adoc[operator<=>]( xref:bsl/optional-072.adoc[bsl::optional<t_LHS>] const& lhs, std::optional<t_RHS> const& rhs); ---- [.small]#xref:bsl/operator_3way-0a.adoc[_» more..._]# Perform a three‐way comparison of the specified `value` and `nullopt`; return the result of that comparison. This function can be called in constant expressions only if `t_TYPE` is not allocator‐aware. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_TYPE> constexpr std::strong_ordering xref:bsl/operator_3way-0d1.adoc[operator<=>]( xref:bsl/optional-072.adoc[bsl::optional<t_TYPE>] const& value, xref:bsl/nullopt_t.adoc[bsl::nullopt_t]) noexcept; ---- [.small]#xref:bsl/operator_3way-0d1.adoc[_» more..._]# Perform a three‐way comparison of the specified `lhs` and the specified `rhs` objects by using the comparison operators of `t_LHS` and `t_RHS`; return the result of that comparison. This function can be called in constant expressions only if `t_LHS` is not allocator‐aware. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_LHS, class t_RHS> requires (!BloombergLP::bslstl::Optional_DerivedFromOptional<t_RHS>) && three_way_comparable_with<t_LHS, t_RHS> constexpr compare_three_way_result_t<t_LHS, t_RHS> xref:bsl/operator_3way-070.adoc[operator<=>]( xref:bsl/optional-072.adoc[bsl::optional<t_LHS>] const& lhs, t_RHS const& rhs); ---- [.small]#xref:bsl/operator_3way-070.adoc[_» more..._]# Perform a three‐way comparison of the specified `lhs` and the specified `rhs` objects by using the comparison operators of `t_LHS` and `t_RHS`; return the result of that comparison. This function can be called in constant expressions only if neither `t_LHS` nor `t_RHS` is allocator‐aware. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_LHS, three_way_comparable_with<t_LHS> t_RHS> constexpr compare_three_way_result_t<t_LHS, t_RHS> xref:bsl/operator_3way-00.adoc[operator<=>]( xref:bsl/optional-072.adoc[bsl::optional<t_LHS>] const& lhs, xref:bsl/optional-072.adoc[bsl::optional<t_RHS>] const& rhs); ---- [.small]#xref:bsl/operator_3way-00.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` multisets by using the comparison operators of `KEY` on each element; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class KEY, class COMPARATOR, class ALLOCATOR> xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<KEY>] xref:bsl/operator_3way-0ff.adoc[operator<=>]( xref:bsl/multiset-03.adoc[multiset<KEY, COMPARATOR, ALLOCATOR>] const& lhs, xref:bsl/multiset-03.adoc[multiset<KEY, COMPARATOR, ALLOCATOR>] const& rhs); ---- [.small]#xref:bsl/operator_3way-0ff.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` pairs by using the comparison operators of `T1` and `T2`; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T1, class T2> constexpr std::common_comparison_category_t<BloombergLP::bslalg::SynthThreeWayUtil::Result<T1>, BloombergLP::bslalg::SynthThreeWayUtil::Result<T2>> xref:bsl/operator_3way-05.adoc[operator<=>]( xref:bsl/pair-0b.adoc[pair<T1, T2>] const& lhs, xref:bsl/pair-0b.adoc[pair<T1, T2>] const& rhs); ---- [.small]#xref:bsl/operator_3way-05.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` maps by using the comparison operators of `bsl::pair<const KEY, VALUE>` on each element; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class KEY, class VALUE, class COMPARATOR, class ALLOCATOR> xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<bsl::pair<KEY const, VALUE>>] xref:bsl/operator_3way-081.adoc[operator<=>]( xref:bsl/multimap-0ae.adoc[multimap<KEY, VALUE, COMPARATOR, ALLOCATOR>] const& lhs, xref:bsl/multimap-0ae.adoc[multimap<KEY, VALUE, COMPARATOR, ALLOCATOR>] const& rhs); ---- [.small]#xref:bsl/operator_3way-081.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` maps by using the comparison operators of `bsl::pair<const KEY, VALUE>` on each element; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class KEY, class VALUE, class COMPARATOR, class ALLOCATOR> xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<bsl::pair<KEY const, VALUE>>] xref:bsl/operator_3way-044.adoc[operator<=>]( xref:bsl/map-0a7.adoc[map<KEY, VALUE, COMPARATOR, ALLOCATOR>] const& lhs, xref:bsl/map-0a7.adoc[map<KEY, VALUE, COMPARATOR, ALLOCATOR>] const& rhs); ---- [.small]#xref:bsl/operator_3way-044.adoc[_» more..._]# Perform a three‐way comparison of the specified `ptr` and null pointer by using the comparison operators of `TYPE *`; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class TYPE> std::strong_ordering xref:bsl/operator_3way-0412.adoc[operator<=>]( xref:bsl/shared_ptr-0a.adoc[shared_ptr<TYPE>] const& ptr, xref:bsl/nullptr_t-08.adoc[nullptr_t]) noexcept; ---- [.small]#xref:bsl/operator_3way-0412.adoc[_» more..._]# Perform a three‐way comparison of the specified `lhs` and the specified `rhs` pointers by using the comparison operators of `LHS_TYPE *` and `RHS_TYPE *`; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class LHS_TYPE, class RHS_TYPE> std::strong_ordering xref:bsl/operator_3way-086.adoc[operator<=>]( xref:bsl/shared_ptr-0a.adoc[shared_ptr<LHS_TYPE>] const& lhs, xref:bsl/shared_ptr-0a.adoc[shared_ptr<RHS_TYPE>] const& rhs) noexcept; ---- [.small]#xref:bsl/operator_3way-086.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` strings by using `CHAR_TRAITS::eq` on each character; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class CHAR_TYPE, class CHAR_TRAITS, class ALLOC1, class ALLOC2> xref:bsl/String_ComparisonCategoryType.adoc[bsl::String_ComparisonCategoryType<CHAR_TRAITS>] xref:bsl/operator_3way-07c1.adoc[operator<=>]( xref:bsl/basic_string-0faf.adoc[bsl::basic_string<CHAR_TYPE, CHAR_TRAITS, ALLOC1>] const& lhs, std::basic_string<CHAR_TYPE, CHAR_TRAITS, ALLOC2> const& rhs) noexcept; ---- [.small]#xref:bsl/operator_3way-07c1.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` string and the specified `rhs` C‐string by using `CHAR_TRAITS::eq` on each character; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class CHAR_TYPE, class CHAR_TRAITS, class ALLOC> xref:bsl/String_ComparisonCategoryType.adoc[bsl::String_ComparisonCategoryType<CHAR_TRAITS>] xref:bsl/operator_3way-0d7.adoc[operator<=>]( xref:bsl/basic_string-0faf.adoc[basic_string<CHAR_TYPE, CHAR_TRAITS, ALLOC>] const& lhs, CHAR_TYPE const* rhs); ---- [.small]#xref:bsl/operator_3way-0d7.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` strings by using `CHAR_TRAITS::eq` on each character; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class CHAR_TYPE, class CHAR_TRAITS, class ALLOC> xref:bsl/String_ComparisonCategoryType.adoc[bsl::String_ComparisonCategoryType<CHAR_TRAITS>] xref:bsl/operator_3way-041c.adoc[operator<=>]( xref:bsl/basic_string-0faf.adoc[basic_string<CHAR_TYPE, CHAR_TRAITS, ALLOC>] const& lhs, xref:bsl/basic_string-0faf.adoc[basic_string<CHAR_TYPE, CHAR_TRAITS, ALLOC>] const& rhs) noexcept; ---- [.small]#xref:bsl/operator_3way-041c.adoc[_» more..._]# Perform a three‐way comparison of the specified `lhs` and `rhs` vectors and return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<Impl>] xref:bsl/operator_3way-0377.adoc[operator<=>]( xref:bsl/vector-00d.adoc[vector<char const*>] const& lhs, xref:bsl/vector-00d.adoc[vector<char const*>] const& rhs); ---- [.small]#xref:bsl/operator_3way-0377.adoc[_» more..._]# Perform a three‐way comparison of the specified `lhs` and `rhs` vectors and return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<Impl>] xref:bsl/operator_3way-0d5.adoc[operator<=>]( xref:bsl/vector-00d.adoc[vector<void*>] const& lhs, xref:bsl/vector-00d.adoc[vector<void*>] const& rhs); ---- [.small]#xref:bsl/operator_3way-0d5.adoc[_» more..._]# Perform a three‐way comparison of the specified `lhs` and `rhs` vectors and return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<Impl>] xref:bsl/operator_3way-037e.adoc[operator<=>]( xref:bsl/vector-086.adoc[vector] const& lhs, xref:bsl/vector-086.adoc[vector] const& rhs); ---- [.small]#xref:bsl/operator_3way-037e.adoc[_» more..._]# Perform a lexicographic three‐way comparison of the specified `lhs` and the specified `rhs` vectors by using the comparison operators of `VALUE_TYPE` on each element; return the result of that comparison. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class VALUE_TYPE, class ALLOCATOR> xref:BloombergLP/bslalg/SynthThreeWayUtil/Result.adoc[BloombergLP::bslalg::SynthThreeWayUtil::Result<VALUE_TYPE>] xref:bsl/operator_3way-01c.adoc[operator<=>]( xref:bsl/vector-00d.adoc[vector<VALUE_TYPE, ALLOCATOR>] const& lhs, xref:bsl/vector-00d.adoc[vector<VALUE_TYPE, ALLOCATOR>] const& rhs); ---- [.small]#xref:bsl/operator_3way-01c.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#