或者
boost::function<int (int)> f;
X x;
f = std::bind1st(
std::mem_fun(&X::foo), &x);
f(5); // Call x.foo(5)
以上语法在有些编译器上不能用vc6和vc7.0都不行,要vc7.1
这些都支持
GNU C++ 2.95.x, 3.0.x, 3.1.x
Comeau C++ 4.2.45.2
SGI MIPSpro 7.3.0
Intel C++ 5.0, 6.0
Compaq's cxx 6.2
Microsoft Visual C++ 7.1