の実装例を見ていましたがbinder1st
、次のようになります。
template <class Operation, class T>
binder1st<Operation> bind1st (const Operation& op, const T& x)
{
return binder1st<Operation>(op, typename Operation::first_argument_type(x));
}
とはどういう意味ですかtypename Operation::first_argument_type(x)
? タイプ名であることは理解していますが、基本クラスfirst_argument_type
に属しています。binary_function
それは名前空間に属する関数のように見えますOperation
-その場合、なぜtypename
ここで使用されているのですか?