Boost库中的mem_fn等式运算符测试程序
在C++中,我们可以使用函数指针或者函数对象来代表一个函数。当我们需要将一个函数作为参数传递给另一个函数时,函数指针或函数对象就显得尤为重要了。在实际开发中,我们经常会遇到需要将一个成员函数(member function)作为回调函数(callback function)传递给其他函数的情形。然而,C++标准库中并没有提供现成的函数指针或函数对象来代表成员函数,这就为我们带来了不小的困扰。
为了解决这个问题,Boost库提供了一个非常有用的辅助函数mem_fn,可以将一个成员函数转化为一个函数指针或者函数对象,从而使我们能够方便地将其作为回调函数传递给其他函数。
下面是一个使用mem_fn的例子:
#include <iostream>
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <boost/mem_fn.hpp>
using namespace std;
class A {
public:
void foo(int x) {
cout << "A::foo(" << x << ")" << endl;
}
};
voi