说是延时求值,注意还是想搞一搞std::function和std::bind. 之前博客<C++11新特性之std::function>注意是std::function怎样实现回调函数. 如今就算是补充吧,再把std::bind进行讨论讨论. 何为Callable Objects? 就可以调用对象,比方函数指针.仿函数.类成员函数指针等都可称为可调用对象. 对象包装器 Function wrapper Class that can wrap any kind of callable eleme…
#include <iostream> #include <functional>//std::bind返回函数对象 void fun1(int a, int b) { std::cout << a << b << std::endl; } using namespace std::placeholders; class A { public: void fun2(int a, int b) { std::cout << a <…
see link: https://isocpp.org/wiki/faq/pointers-to-members function vs template: http://stackoverflow.com/questions/14677997/stdfunction-vs-template boost::functoin/std::function可用于全部 operator() 操作的对象(函数,类.成员函数.lambda表达式等等). 用处就是能够使用一个函数指针调用不用的函数实体(仅仅…
std::function 是一个模板类,用于封装各种类似于函数这样的对象,例如普通函数,仿函数,匿名函数等等.其强大的多态能力,让其使用只依赖于调用特征.在程序的升级中,可以实现一个调用表,以兼容新旧不同的实现方式. 例如: #include <iostream> #include <functional> #include <list> using namespace std; //普通函数 int c_fun_add(int a, int b) { return…