Function objects | |
| |
| |
| |
Old binders and adaptors |
| | | | | | (until C++17*)(until C++17*)(until C++17*)(until C++17*) | | |
| (until C++17*)(until C++17*) | (until C++17*)(until C++17*) |
| | (until C++17*)(until C++17*)(until C++17*)(until C++17*) | | |
|
| | |
struct equal_to; | | (since C++20) |
| | |
Function object for performing comparisons. The parameter types of the function call operator (but not the return type) are deduced from the arguments.
[edit]Nested types
[edit]Member functions
| checks if the arguments areequal (public member function) |
std::ranges::equal_to::operator()
template<class T,class U> constexprbool operator()( T&& t, U&& u)const; | | |
| | |
Given the expressionstd::forward<T>(t)==std::forward<U>(u) asexpr:
This overload participates in overload resolution only ifstd::equality_comparable_with<T, U> is satisfied.
Compared tostd::equal_to,std::ranges::equal_to
additionally requires!=
to be valid, and that both argument types are required to be (homogeneously) comparable with themselves (via theequality_comparable_with
constraint).
[edit]Example
| This section is incomplete Reason: no example |
[edit]Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|
LWG 3530 | C++20 | syntactic checks were relaxed while comparing pointers | only semantic requirements are relaxed |
[edit]See also
| function object implementingx== y (class template)[edit] |