1

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

4

1 回答 1

0

这意味着typename关键字(ie Operation::first_argument_type)后面的限定名称将被解释为(依赖)类型的名称。

您可以在此处阅读关键字的完整说明typename(也有另一种不同的用法)。

于 2013-09-04T13:52:44.540 回答