我正在查看 的示例实现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
这里使用?