template <class T, class U>
void func(T,U) { printf("T,U/n"); }
template <class T>
void func<T,T>(T,T) { printf("T,T/n"); }
func(int(), int()):
即,template function无法偏特化,但是很多时候我们都需要能够有function 偏特
化的存在, 这样就只能利用function overload来workaround.比如:
template<class T>
void func(T,T) { printf("T,T/n"); } //overload<class T>
如果我们需要更加复杂的偏特化机制, 可能需要在arguments里加上个type tag在
表示进行重载.
本文探讨了C++中模板函数无法直接实现偏特化的问题,并介绍了如何通过函数重载来实现类似的功能。此外,还提到了在某些情况下可以通过类型标记来进一步复杂地实现偏特化。
164

被折叠的 条评论
为什么被折叠?



