当我们在模板声明中看到C类= myarray时,它意味着什么?

时间:2012-10-08 15:03:42

标签: c++

在浏览标准时,我发现模板声明中的一些语法使我感到困惑:

template <typename T> class myarray;

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

class C = myarray是什么意思?它是默认参数吗?感谢。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

它基本上是参数的“默认值”。

相关问题