【发布时间】:2023-01-12 04:53:39
【问题描述】:
我正在尝试添加通用类型的方法和类一致的专门化,但我一直无法弄清楚如何指定模板实例化(如果可能的话)。
我最好的猜测是类似于以下内容(尽管它显然无法编译):
template<typename ClassT>
class Foo
{
public:
ClassT x;
template<typename MethodT>
void Bar(MethodT arg)
{
}
};
template<typename T>
template<>
void Foo<T>::Bar(T arg)
{
x = arg;
}
【问题讨论】:
-
这必须是专业化还是常规超载?
-
不幸的是,模板类必须在它的任何模板方法被特化之前被特化。
-
克里斯,如果重载有效,那就太好了,但我认为不枚举每种类型是不可能的,对吗?
标签: c++ templates template-meta-programming