我可以在头文件的开头进行通用函数声明吗?
然后我可以template<class t> t func(t);
专门化它,但是
模板专门化 VS 函数重载
说不要那样做。
我可以在头文件的开头进行通用函数声明吗?
然后我可以template<class t> t func(t);
专门化它,但是
模板专门化 VS 函数重载
说不要那样做。
首先,您当然可以声明一个模板函数,然后定义它,和/或定义特化。但...
函数特化必须是完全特化,即不能部分特化模板函数。现在,虽然您实际上可以专门化函数模板,但提供重载可能有优点(和缺点),但在大多数情况下,这将是一个更好的选择。
您可能想阅读以下内容:http ://www.gotw.ca/publications/mill17.htm