# std::plus<void>

< cpp‎ | utility‎ | functional

定义于头文件 `<functional>` |  |
template<> class plus<void>; |  | (C++14 起)

std::plus<> 是推导参数和返回类型的 std::plus 特化。

### 成员类型

成员类型 | 定义
`is_transparent` | /* 未指定 */

### 成员函数

operator() | 返回二个参数的和 (公开成员函数)

## std::plus<>::operator()

template< class T, class U> constexpr auto operator()( T&& lhs, U&& rhs ) const -> decltype(std::forward<T>(lhs) + std::forward<U>(rhs)); |  |

返回 `lhs` 与 `rhs` 的和。

### 参数

lhs, rhs | - | 要求和的值

### 返回值

lhs + rhs 的结果。

### 注意

成员类型 `is_transparent` 指示调用方，此函数对象是一个通透函数对象：它接受任意类型的参数并使用完美转发，这在将函数对象在多种语境中，或以右值参数使用时，避免不需要的复制和转换。特别是，诸如 std::set::find 和 std::set::lower_bound 的模板函数在其 `Compare` 类型上使用此类型。

### 示例

    #include <functional>
    #include <iostream>

    int main()
    {
        std::string a = "Hello ";
        const char* b = "world";
        std::cout << std::plus<>{}(a, b) << '\n';
    }

输出：

    Hello world