函数对象
来自cppreference.com
任何定义了函数调用操作符的对象都是函数对象。C++ 支持创建、操作新的函数对象,同时也提供了许多内置的函数对象。
目录 |
[编辑] 函数的多态封装
std::function 支持存储任何函数对象。
(C++11) |
包装任何类型的可调用对象与指定的函数调用签名 原文: wraps callable object of any type with specified function call signature (类模板) |
(C++11) |
创建一个函数对象的指针的成员 原文: creates a function object out of a pointer to a member (函数模板) |
(C++11) |
调用一个空的std::function时抛出的异常 原文: the exception thrown when invoking an empty std::function (类) |
[编辑] 绑定
std::bind 支持函数的部分应用,即通过绑定参数来生成新的函数。
(C++11) |
绑定一个或多个参数的函数对象 原文: binds one or more arguments to a function object (函数模板) |
(C++11) |
指示一个对象是 std::bind 表达或者可以用作一个 原文: indicates that an object is std::bind expression or can be used as one (类模板) |
(C++11) |
指示一个对象是一个标准的占位符或可以用作1 原文: indicates that an object is a standard placeholder or can be used as one (类模板) |
定义于
std::placeholders 名字空间 | |
(C++11) |
std::bind 表达在未绑定的参数的占位符 原文: placeholders for the unbound arguments in a std::bind expression (常量) |
[编辑] 引用的封装
引用的封装可以在可复制的函数对象中保存引用参数:
(C++11) |
(类模板) |
(C++11) (C++11) |
创建一个std::reference_wrapper推导出它的参数类型 原文: creates a std::reference_wrapper with a type deduced from its argument (函数模板) |
[编辑] 函数对象
C++ 针对常用的算术和逻辑运算定义了很多函数对象:
算术运算 | |
函数对象实施x + y (类模板) | |
函数对象实施x - y (类模板) | |
函数对象实施x * y (类模板) | |
函数对象实施x / y (类模板) | |
函数对象实施x % y (类模板) | |
函数对象实施-x (类模板) | |
比较 | |
函数对象实施x == y 原文: function object implementing x == y (类模板) | |
函数对象实施x != y 原文: function object implementing x != y (类模板) | |
函数对象实施x > y (类模板) | |
函数对象实施x < y (类模板) | |
函数对象实施x >= y 原文: function object implementing x >= y (类模板) | |
函数对象实施x <= y 原文: function object implementing x <= y (类模板) | |
逻辑运算 | |
函数对象实施x && y 原文: function object implementing x && y (类模板) | |
函数对象实施x || y 原文: function object implementing x || y (类模板) | |
函数对象实施!x (类模板) | |
位运算 | |
函数对象实施x & y (类模板) | |
函数对象实施x | y (类模板) | |
函数对象实施x ^ y (类模板) | |
否定词 | |
包装函数对象返回的补一元谓词其持有的 原文: wrapper function object returning the complement of the unary predicate it holds (类模板) | |
包装函数对象返回的补其所持有的二元谓词 原文: wrapper function object returning the complement of the binary predicate it holds (类模板) | |
构造自定义std::unary_negate对象 原文: constructs custom std::unary_negate object (函数模板) | |
构造自定义std::binary_negate对象 原文: constructs custom std::binary_negate object (函数模板) |
[编辑] 在 C++11 中弃用
一些实用工具在早期 C++ 中提供函数式编程支持,但在 C++11 中弃用。
基础 | |
(已弃用) |
适配器兼容的一元函数的基类 原文: adaptor-compatible unary function base class (类模板) |
(已弃用) |
适配器兼容的二元函数的基类 原文: adaptor-compatible binary function base class (类模板) |
绑定器 | |
(已弃用) (已弃用) |
函数对象的一个二元函数和它的参数之一 原文: function object holding a binary function and one of its arguments (类模板) |
(已弃用) (已弃用) |
一个参数绑定到一个二元函数 原文: binds one argument to a binary function (函数模板) |
函数适配器 | |
适配器兼容的包装,一元函数的指针 原文: adaptor-compatible wrapper for a pointer to unary function (类模板) | |
适配器兼容的封装为一个二元函数的指针 原文: adaptor-compatible wrapper for a pointer to binary function (类模板) | |
(已弃用) |
创建适配器兼容功能的包装对象从一个指针到函数 原文: creates an adaptor-compatible function object wrapper from a pointer to function (函数模板) |
(已弃用) (已弃用) (已弃用) (已弃用) |
包装为一个无参的成员函数,调用一个指向对象的指针的指针 原文: wrapper for a pointer to nullary member function, callable with a pointer to object (类模板) |
(已弃用) |
从一个指针成员函数创建一个包装,一个指向对象的指针调用 原文: creates a wrapper from a pointer to member function, callable with a pointer to object (函数模板) |
(已弃用) (已弃用) (已弃用) (已弃用) |
wapper一个无参或一元成员函数的指针,调用的参考对象 原文: wapper for a pointer to nullary or unary member function, callable with a reference to object (类模板) |
(已弃用) |
从一个指针成员函数创建一个包装,赎回的参考对象 原文: creates a wrapper from a pointer to member function, callable with a reference to object (函数模板) |