std::ranges::equal_to - cppreference.com (original) (raw)

| | | | | ----------------- | | ------------- | | 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.

Contents

[edit] Nested types

[edit] Member functions

| | checks if the arguments are equal (public member function) | | --------------------------------------------------------------- |

std::ranges::equal_to::operator()

| template< class T, class U > constexpr bool operator()( T&& t, U&& u ) const; | | | | ------------------------------------------------------------------------------ | | |

Given the expression std::forward<T>(t) == std::forward<U>(u) as expr:

This overload participates in overload resolution only if std::equality_comparable_with<T, U> is satisfied.

[edit] Notes

Compared to std::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 the equality_comparable_with constraint).

[edit] 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