単項関数を二つつなげて、2項関数にする。

template< typename L, typename R >
struct 2uni_to_bin
{
 2uni_to_bin( L l, R r ) : l_(l), r_(r) {}
 template< typename A1, typename A2 >
 void operator()( A1 a1, A2 a2 )
 {
  l_( a1 );
  r_( a2 );
 }
 L l_; R r_;
};