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 回答