0

標準を参照しているときに、テンプレート宣言に混乱する構文を見つけました。

template <typename T> class myarray;

template </*...*/, template <typename T> class C = myarray>

とはclass C = myarrayどういう意味ですか? デフォルトパラメータですか?ありがとう。

4

2 に答える 2

5

これは、テンプレート テンプレート引数の既定値です。引数を指定しない場合、デフォルトで になりますmyarray

例:

template <typename> class Foo;
template <typename> class Bar;

template <typename T, template <typename> class C = Foo>
class Zip
{
    typedef C<T> type;  // example use of "C"
    // ...
};

Zip<int, Bar> x;  // OK
Zip<int>      y;  // OK, y has type Zip<int, Foo>
于 2012-10-08T15:05:43.213 に答える
1

これは基本的に引数の「デフォルト値」です。

于 2012-10-08T15:06:36.343 に答える