# 实验性库头文件 <experimental/ranges/functional>

< cpp‎ | header‎ | experimental

此头文件是范围库的一部分。

### 函数对象

定义于命名空间 `std::experimental::ranges`
invoke | 以给定实参调用可调用 (Callable) 对象 (函数模板)
equal_to | 实现 x == y 的函数对象 (类模板)
not_equal_to | 实现 x != y 的函数对象 (类模板)
greater | 实现 x > y 的函数对象 (类模板)
less | 实现 x < y 的函数对象 (类模板)
greater_equal | 实现 x >= y 的函数对象 (类模板)
less_equal | 实现 x <= y 的函数对象 (类模板)
identity | 返回其（未改变的）实参的函数对象 (类)

### 概要

    namespace std { namespace experimental { namespace ranges { inline namespace v1 {

    template <class F, class... Args>
    std::result_of_t<F&&(Args&&...)> invoke(F&& f, Args&&... args);

    template <class T = void>
      requires /* 见定义 */
    struct equal_to;

    template <class T = void>
      requires /* 见定义 */
    struct not_equal_to;

    template <class T = void>
      requires /* 见定义 */
    struct greater;

    template <class T = void>
      requires /* 见定义 */
    struct less;

    template <class T = void>
      requires /* 见定义 */
    struct greater_equal;

    template <class T = void>
      requires /* 见定义 */
    struct less_equal;

    template <> struct equal_to<void>;
    template <> struct not_equal_to<void>;
    template <> struct greater<void>;
    template <> struct less<void>;
    template <> struct greater_equal<void>;
    template <> struct less_equal<void>;

    struct identity;

    }}}}