函数对象

来自cppreference.com
< cpp‎ | utility
 
 
工具库
类型支持(基本类型、RTTI、类型特性)
动态内存管理
错误处理
程序工具
变参数函数
日期与时间
函数对象
(C++11)
关系运算符
optionalanyvariant (C++17)
pair与tuple
(C++11)
(C++17)
swap、forward与move
(C++14)
(C++11)
(C++11)
初等字符串转换
(C++17)
(C++17)
类型运算
(C++11)
(C++17)
 
函数对象
函数包装
(C++11)
(C++11)
(C++17)
绑定
(C++11)
引用包装
(C++11)
(C++11)
运算符包装
取反器
(过时)
(过时)

(过时)
查找器
旧绑定器与适配器
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)

(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
 

任何定义了函数调用操作符的对象都是函数对象。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
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数模板) [编辑]
调用一个空的std::function时抛出的异常
原文:
the exception thrown when invoking an empty std::function
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类) [编辑]
(C++17)
以给定参数调用任何可调用Callable)对象
(函数模板) [编辑]

[编辑] 绑定

std::bind 支持函数的部分应用,即通过绑定参数来生成新的函数。

(C++11)
绑定一或多个参数到函数对象
(函数模板) [编辑]
表明一个对象是std::bind对象,或者可以用作std::bind对象
(类模板) [编辑]
表明一个对象是标准占位符,或者可以用作标准占位符
(类模板) [编辑]
定义于命名空间 std::placeholders
std::bind表达式中用于非绑定的参数的占位符
(常量) [编辑]

[编辑] 引用封装

引用封装可以在可复制的函数对象中保存引用参数:

可复制构造CopyConstructible)且可复制赋值CopyAssignable)的引用包装器
(类模板) [编辑]
(C++11)
(C++11)
创建类型从参数可推导的std::reference_wrapper
(函数模板) [编辑]

[编辑] 否定器

std::not_fn 创建函数对象,它对传递给它的可调用对象的结果做逻辑否定。

(C++17)
创建返回其保有的函数对象的结果之补的函数对象
(函数模板) [编辑]
包装函数对象,返回所持有的一元谓词的补
(类模板) [编辑]
包装函数对象,返回所持有的二元谓词的补
(类模板) [编辑]
(过时)
构造自定义的 std::unary_negate 对象
(函数模板) [编辑]
(过时)
构造自定义的 std::binary_negate 对象
(函数模板) [编辑]

[编辑] 查找器

提供实现数种字符串查找算法的查找器,并可以将其中之一直接用于 std::search 或与之共用。

标准 C++ 库查找算法实现
(类模板) [编辑]
Boyer-Moore 查找算法实现
(类模板) [编辑]
Boyer-Moore-Horspool 查找算法实现
(类模板) [编辑]

[编辑] 运算符函数对象

C++ 针对常用的算术和逻辑运算定义了很多函数对象:

算术运算
实现x + y的函数对象
(类模板) [编辑]
实现x - y的函数对象
(类模板) [编辑]
实现x * y的函数对象
(类模板) [编辑]
实现x / y的函数对象
(类模板) [编辑]
实现x % y的函数对象
(类模板) [编辑]
实现-x的函数对象
(类模板) [编辑]
比较
实现x == y的函数对象
(类模板) [编辑]
实现x != y的函数对象
(类模板) [编辑]
实现x > y的函数对象
(类模板) [编辑]
实现x < y的函数对象
(类模板) [编辑]
实现x >= y的函数对象
(类模板) [编辑]
实现x <= y的函数对象
(类模板) [编辑]
逻辑运算
实现x && y的函数对象
(类模板) [编辑]
实现x || y的函数对象
(类模板) [编辑]
实现!x的函数对象
(类模板) [编辑]
位运算
实现x & y的函数对象
(类模板) [编辑]
实现x | y的函数对象
(类模板) [编辑]
实现x ^ y的函数对象
(类模板) [编辑]
(C++14)
实现~x的函数对象
(类模板) [编辑]

[编辑] 旧式绑定器与适配器

早期提供功能支持的几个工具在 C++11 中过时,并在 C++17 中被移除:

基础
(C++17 前)
适配器兼容的一元函数的基类
原文:
adaptor-compatible unary function base class
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类模板) [编辑]
(C++17 前)
适配器兼容的二元函数的基类
原文:
adaptor-compatible binary function base class
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类模板) [编辑]
绑定器
(C++17 前)
(C++17 前)
持有一元函数及其参数的函数对象
(类模板) [编辑]
(C++17 前)
(C++17 前)
将参数绑定到二元函数
(函数模板) [编辑]
函数适配器
适配器兼容的包装,用于包装一元函数的指针
(类模板) [编辑]
适配器兼容的包装,用于包装二元函数的指针
(类模板) [编辑]
(C++17 前)
从函数指针创建适配器兼容的函数对象包装
(函数模板) [编辑]
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
指向无参成员函数指针的包装,使用对象指针来调用
(类模板) [编辑]
(C++17 前)
从成员函数的指针创建包装,使用对象指针来调用
(函数模板) [编辑]
包装一个无参或一元成员函数,使用对象指针来调用
(类模板) [编辑]
(C++17 前)
从成员函数指针创建包装,使用对象的参考来调用
(函数模板) [编辑]