中途半端にbind

昨日のを色々実験してみたわけですが、

// なんか、駄目。
n = boost::bind( plus< int >(), _1, _2 )( a, b );
// で、しょうがないから関数を用意してみる。
int tasu( int a, int b ) { return a + b; }
// これは動く。
n = boost::bind( tasu, _1, _2 )( 235, 123 );
// こうすると駄目。boost::protectでrand()を保護しようとしてもエラー。
n = boost::bind( tasu, _1, _2 )( rand(), rand() );

とまぁ、散々な結果でした。1番目のは、関数オブジェクトが何か悪いようで、最後のはprotect周りでエラーが出ます。protect付けないのはたぶん間違い。ちなみに、boost::を外すと、socket関係のbindと名前が被ってしまうようです。