是模板<typename t =“char”>正确吗?</typename>

时间:2013-11-22 18:55:43

标签: c++ templates

template <typename T=char>

我在一些项目中看到了这段代码。 为什么他/她把“= char”放在那里? 这是合法的,它是什么意思?

谢谢

2 个答案:

答案 0 :(得分:2)

它是模板参数的默认值,因此无需指定该类型即可实例化。

template <typename T=char>
class Foo { ... };

Foo<> x;      // a Foo<char>
Foo<char> y;  // same as above
Foo<int> z;   // now a Foo<int>

答案 1 :(得分:1)

用于为类模板参数设置默认值或类型。

template <class T=char, int N=10> class mysequence {..};

我们可以通过声明:

使用默认模板参数创建对象
 mysequence<> myseq;

这相当于:

mysequence<char,10> myseq;