struct F
{
int operator()(int a, int b) { return a - b; }
bool operator()(long a, long b) { return a == b; }
};
F f;
int x = 104;
bind<int>(f, _1, _1)(x); // f(x, x), i.e. zero
bind(f, ...) 構文に問題があるコンパイラもあります。移植性の理由から、上記を表現する別の方法がサポートされています。
boost::bind(boost::type<int>(), f, _1, _1)(x);
上記のように、コードは関数オブジェクト型に boost::type を使用します 。boost::type 実装がどこに含まれているかを知るには?