繁体   English   中英

“重载”模板化和非模板化类型

[英]“Overloading” templated and non-templated types

在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>相同 - Class<void>的声明可以是必要的,以使其工作。

添加默认参数。

template<typename T = void>
class Class;

Class<>现在等同于Class<void>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM