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これは、キーワード (すなわち)に続く修飾名がOperation::first_argument_type(従属) 型の名前として解釈されることを意味します。

キーワードの完全な説明typename(別の異なる使用法もあります) は、こちらで読むことができます。

于 2013-09-04T13:52:44.540 に答える