2012-07-01 121 views
0

我可以在我的头文件开始时进行泛型函数声明吗?函数重载模板声明

我可以做template<class t> t func(t);那么专注,但
Template Specialization VS Function Overloading
说不要那样做。

+1

您的问题不清楚。你在说什么?声明与定义?或专精与重载?你提供的链接是关于后者。但似乎你的问题可能是关于前者。这一切与“头文件开头的声明”有什么关系? – AnT

回答

1

首先,您可以肯定地声明一个模板函数,然后定义它,并且/或者定义专门化。但...

功能专业化必须是完整专业化,也就是说,你不能部分专门化模板功能。现在,虽然实际上可以专门化函数模板,但提供超载可能有优点(和缺点),但在大多数情况下,它将是更好的选择。

您可能想要读这:http://www.gotw.ca/publications/mill17.htm