【发布时间】:2013-11-28 22:01:33
【问题描述】:
我有类似这样的代码:
class test {
template <typename T>
void func(T rhs);
template <typename V>
void func(std::vector<V> rhs);
};
我可以这样做吗?这似乎是一个专业化,但我必须引入一个新模板。当我尝试这样做时,gcc 也会告诉我这样的错误:
template<>
template<V>
void func(std::vector<V> rhs);
explicit specialization in non-namespace scope
too many template-parameter-lists
【问题讨论】:
-
您没有在您的代码示例中专门针对
V。应该是int、double或MyClass,不是吗? -
我尝试使用通用类型和向量的功能,但也具有通用类型。当我尝试这样做时,编译器采用最通用的功能,所以带有 T 的那个。
标签: c++ templates overloading template-specialization