我看到了以下代码:
template<class T, T t = T()>
class A {
t > T()
};
我对第二个模板参数(t = T())感到困惑。这是一个返回T或非类型参数的函数吗?比较t和T()是什么意思?
答案 0 :(得分:2)
第二个参数是非类型参数,但它不是函数。
T t = T()
只需指定模板参数t
的默认值。
您可以使用以下方法创建模板实例:
A<int> a1; // Equivalent to A<int, 0>
A<int, 10> a2;
A<bool> a3; // Equivalent to A<bool, false>
A<bool, true> a4;
该行
t > T()
根本没有意义。