我不确定我想做的事情是否可行。这是一个例子:
template <typename T>
class Ref
{
void Decrement();
};
template <typename T>
class Collection {};
// This will error
template <>
template <typename T>
void Ref<Collection<T>>::Decrement() {}
答案 0 :(得分:0)
你不能只在一个类模板中专门设计一个函数;你必须将课程模板作为一个整体专门化。
template <typename T>
class Ref
{
void Decrement();
};
template <typename T>
class Collection {};
template <typename T>
class Ref<Collection<T>> {
void Decrement() {}
};
你可以专门化一个类中的函数模板,即,这个:
class Ref {
template <typename U> void Decrement();
};
或类模板中的函数模板......
template <typename T>
class Ref {
template <typename U> void Decrement();
};
但是,即使这样,也不能为功能模板执行部分特化,这是您想要做的事情。函数模板只能完全专用于单个类型,而不能部分专门化,而类模板可以是部分或完全专用的。