operator==, <=>(std::reference_wrapper) - cppreference.com
From cppreference.com
|
|
(1) | (since C++26) |
|
|
(2) | (since C++26) |
|
|
(3) | (since C++26) |
|
|
(4) | (since C++26) |
|
|
(5) | (since C++26) |
|
|
(6) | (since C++26) |
Performs comparison operations on reference_wrapper objects.
1,2) Compares two reference_wrapper objects. The objects compare equal if and only if lhs.get() and rhs.get() are equal.
1) This overload participates in overload resolution only if the expression lhs.get() == rhs.get() is well-formed and its result is convertible to bool.
2) This overload participates in overload resolution only if all following conditions are satisfied:
std::is_const_v<T>isfalse.- The expression
lhs.get() == rhs.get()is well-formed and its result is convertible tobool.
3) Compares reference_wrapper object with a reference. The parameters compare equal if and only if lhs.get() is equal to ref.
This overload participates in overload resolution only if the expression lhs.get() == ref is well-formed and its result is convertible to bool.
4) This overload participates in overload resolution only if the expression synth-three-way(lhs.get(), rhs.get()) is well-formed.
5) This overload participates in overload resolution only if all following conditions are satisfied:
std::is_const_v<T>isfalse.- The expression synth-three-way
(lhs.get(), rhs.get())is well-formed.
This overload participates in overload resolution only if the expression synth-three-way(lhs.get(), ref) is well-formed.
The <, <=, >, >=, and != operators are synthesized from operator<=> and operator== respectively.
Parameters
| lhs, rhs | - | reference_wrapper object to compare
|
| ref | - | reference to compare to the reference_wrapper object
|
Return value
1,2) lhs.get() == rhs.get().
3) lhs.get() == ref.
Exceptions
Throws when and what the comparison throws.
Notes
The return types of operator<=> are deduced from return statements to avoid hard error when instantiating a std::reference_wrapper<T> with synth-three-way-result<T> being ill-formed.
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_reference_wrapper |
202403L |
(C++26) | Comparisons for std::reference_wrapper
|