boost::function<int(int a, int b)> func; func = f; if (func) { cout << func(10, 20) << endl; } func = 0; assert(!func.empty()); return 0; } function这种能够容纳任意可调用对象的能力是非常重要的,在编写泛型代码的时候尤其有用,它使我们能够接受任意的函数或函数对象,增加程序的灵活...
当然,boost::function不止这些,请看下面的函数对象: struct int_add { float operator()(int x, int y) { return (float)(x + y); } }; 上面的 boost::function<float (int x, int y)> f 声明的f对象,仍旧可以保存int_add: f = int_add(); std::cout << "f add : "<< f(10,20) <...
要开始使用 Boost.Function, 就要包含头文件 "boost/function.hpp", 或者某个带数字的版本,从 "boost/function/function0.hpp" 到 "boost/function/function10.hpp". 如果你知道你想保存在 function 中的函数的参数数量,这样做可以让编译器仅包含需要的头文件。如果包含 "boost/function.hpp", 那么就会把其它的...
#include <iostream> #include <boost/bind.hpp> #include <boost/function.hpp> typedef boost::function<void(void)>Func; void print_string(const std::string s) { std::cout<<"s:"<<s<<std::endl; } int main() { Func f(boost::bind(print_string,"hello bind")); f(); return 0; }...
<iostream>#include<boost/function.hpp>#include<boost/bind.hpp>voidfoo(intn){std::cout<<"foo: "<<n<<std::endl;}structBar{voidoperator()(intn){std::cout<<"Bar::operator(): "<<n<<std::endl;}};intmain(){boost::function<void(int)>f;f=&foo;f(1);f=Bar();f(2);ret...
at(i)(i); 18 18 return 0; 19 19 } 上述代码中首先把声明一个函数对象 typedef boost::function<void (int)> SuccessPrint, 然后把print绑定到斥对象中, 放入vector中, 到最后才来执行这print()函数。 本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2016-12-15 ,如有侵权请...
(A&)" << std::endl; } void test(int x,int y) { std::cout << "x:" << x << std::endl; std::cout << "y:"<< y << std::endl; } typedef boost::function<void(void)>Func; typedef boost::function<void(int)>Func2; int main() { A a(10); std::cout << "...f1....
0.5, _1, 10); fp(100); boost::function<void (int, int)> fp2 = boost::bind(&Foo::memberFunc, &foo, 0.5, _1, _2); fp2(100, 200); boost::function<void (int, int)> fp3 = boost::bind(&Foo::memberFunc, boost::ref(foo), 0.5, _1, _2); fp3(55, 66); return 0; } ...
FunctionScoreQueryBuilder.FilterFunctionBuilder provinceFunction=new FunctionScoreQueryBuilder.FilterFunctionBuilder(provinceScoreFunction); filterFunctionBuilders[functionNum]=provinceFunction; return filterFunctionBuilders; } 1. 2. 3. 4. 5. 6. 7. ...
result_of可以自动推导function的返回值。 function代理普通函数:function<double(double)>func=sqrt; cout<<func(12.5); function代理成员函数: struct demo_class{int add(int a,int b){return a+b;} int operator()(int x)const {return x*x;}}; ...