0

我可以在头文件的开头进行通用函数声明吗?

然后我可以template<class t> t func(t);专门化它,但是
模板专门化 VS 函数重载
说不要那样做。

4

1 回答 1

1

首先,您当然可以声明一个模板函数,然后定义它,和/或定义特化。但...

函数特化必须是完全特化,即不能部分特化模板函数。现在,虽然您实际上可以专门化函数模板,但提供重载可能有优点(和缺点),但在大多数情况下,这将是一个更好的选择。

您可能想阅读以下内容:http ://www.gotw.ca/publications/mill17.htm

于 2012-07-01T03:34:35.770 回答