std::functionでもメンバ関数を扱えた

BoostとC++0xの差異を調査中。
bindやラムダがある今となっては不要な気がしますが、std::functionでもメンバ関数を扱えました:

#include <iostream>
#include <functional>

struct X {
    void foo(int arg) const { std::cout << arg << std::endl; }
};

int main()
{
    std::function<void(const X&, int)> f = &X::foo;
    f(X(), 1);
}
1