>>347

>引数の数に応じて_1,_2,_3....としていかないと いけません。

それ以前に、引数の数が変わると function の型も変わります。
function0<void> f0(bind(&F::f1, &f));
function1<void, int> f1(bind(&F::f1, &f, _1));

だから、面倒くささは function のコンストラクタを
メンバ関数ポインタ等を受け取るように拡張しても結局変わらないと思います。

> boost::function0<void> ff0(メンバ関数ポインタ,クラスポインタ);
> と書けないのはなぜなのでしょうか?

この変換は boost::bind の仕事であって boost::function の仕事ではないと
boost の人たちが考えているからではないでしょうか。