我可以在头文件的开头创建泛型函数声明吗?
我可以做template<class t> t func(t);
然后将它专门化,但是
Template Specialization VS Function Overloading
说不要这样做。
答案 0 :(得分:1)
首先,您可以确定声明模板函数,然后定义它,和/或定义特化。但...
函数特化必须是完整特化,也就是说,您不能部分专门化模板函数。现在,虽然您可以实际专门化功能模板,但提供过载可能具有优势(和缺点),但在大多数情况下,它将是更好的选择。
您可能需要阅读此内容:http://www.gotw.ca/publications/mill17.htm