# std::equal_to

< cpp‎ | utility‎ | functional

定义于头文件 `<functional>` |  |
template< class T > struct equal_to; |  | (C++14 前)
template< class T = void > struct equal_to; |  | (C++14 起)

进行比较的函数对象。调用类型 `T` 上的 operator== ，除非特化。

### 特化

标准库提供 `std::equal_to` 在未指定 `T` 时的特化，这使得参数类型和返回类型留待推导。
equal_to<void> (C++14) | 实现 x == y 并推导参数和返回类型的函数对象 (类模板特化)
| (C++14 起)

### 成员类型

类型 | 定义
`result_type` (C++17 中弃用)(C++20 中移除) | bool
`first_argument_type` (C++17 中弃用)(C++20 中移除) | `T`
`second_argument_type` (C++17 中弃用)(C++20 中移除) | `T`

这些成员类型由公开继承 std::binary_function<T, T, bool> 获得。 | (C++11 前)

### 成员函数

operator() | 检查参数是否相等 (公开成员函数)

## std::equal_to::operator()

bool operator()( const T& lhs, const T& rhs ) const; |  | (C++14 前)
constexpr bool operator()( const T& lhs, const T& rhs ) const; |  | (C++14 起)

检查 `lhs` 是否等于 `rhs` 。

### 参数

lhs, rhs | - | 要比较的值

### 返回值

若 lhs == rhs 则为 true ，否则为 false 。

### 异常

可能抛出实现定义的异常。

### 可能的实现

    constexpr bool operator()(const T &lhs, const T &rhs) const
    {
        return lhs == rhs;
    }