"重载"模板化和非模板化类型

时间:2014-06-13 13:43:11

标签: c++

在c ++中,可以重载模板化函数,使其可以使用模板参数调用或不使用:

void func();
template <typename T> void func();

func();
func<int>();

类型(即类)是否可以相同?

class Class;
template <typename T> class Class;

Class a;
Class<int> b;

我只对能够同时使用ClassClass<T>作为类型感兴趣,其中Class的行为与Class<void>完全相同 - 类的声明可以是尽可能复杂,以使其发挥作用。

1 个答案:

答案 0 :(得分:2)

添加默认参数。

template<typename T = void>
class Class;

Class<>现在相当于Class<void>