Boost function使用方法
来源:互联网 发布:淘宝头像图片 编辑:程序博客网 时间:2024/06/15 20:05
function 是一个函数对象的概念。
function可以配合bind使用,存储bind表达式结果,使bind可以多次调用。
function位于命名空间boost,头文件 #include<boost/function.hpp>
1、function存储普通函数:
int f(int a, int b) { return b + a; };int main(){ //存储普通函数 function<int(int, int)> func; //无参构造 一个function对象 assert(!func); func = f; //function 对象存储了f if (func) //function可以转换为bool值 { std::cout << func(10, 20); //调用function的operator() func = 0; //相当于func.clear() //清空function }}
2、function存储成员函数
struct demo_class
{
int add(int a, int b) { return a + b; }
int operator()(int x) { return x * x; }
};
存储成员函数时 ,可以直接在function声明的函数里指定类的类型,然后用bind绑定成员函数;
function<int(demo_class&, int, int)> func1;
func1 = bind(&demo_class::add, _1, _2, _3);
demo_class sc;
std::cout << func1 << std::endl;
也可以在函数类型中仅写出成员函数签名, 在bind时直接绑定类的实例
function<int(int, int)> func2;
func2 = bind(&demo_class::add, &sc, _1, _2);
std::cout << func2(10, 20);
3、使用ref库
function可以直接调用被ref库包装的函数对象,这个功能可以不分的弥补boost.ref没有operator()的缺陷
function<void(int, const& )> func(ref(x)); //function包装引用
4、用于回调
//待完善。。。。。
- Boost function使用方法
- boost库中bind()和function()的使用方法
- boost::function
- Boost.Function
- boost::function
- boost:function
- boost::function
- boost::function
- Boost.Function
- boost::function<>
- boost::function
- 【Boost】boost::function介绍
- boost::bind\boost::function
- 【Boost】boost::function介绍
- 【Boost】boost::function介绍
- 【Boost】boost::function介绍
- 【Boost】boost::function介绍
- boost::bind/boost::function
- COGNOS网页版制作-cognos提示框样式替换
- ONT-How to Create a Debug File in Shipping Execution (文档 ID 290432.1)
- 卡尔曼滤波学习笔记
- 在GitLab上如何删除工程
- 【网络】TCP协议中的四大定时器
- Boost function使用方法
- git系列:gitignore
- 《逆向工程核心原理》学习总结(三)
- iOS开发笔记之基于键值的观察者模式(KVO)
- CSS引入的方式及link和@import的区别
- LINUX下修改mysql数据库密码
- IBatis-学习-3
- 自定义TabBarController,支持双击回到顶部
- ubuntu 默认vim 没有+寄存器