我有一个模板类
template <typename Data>
class C
{
.....
}
在大多数情况下,我依靠编译器让我用类型代替 Data。我在 Data 类型的对象上调用方法 foo()、goo(),所以我替代的东西需要提供。
我现在需要用 int 和 string 替换我的 Data 类型。我不想专门化,因为这个类已经太大了,需要专门化每种方法(只需少量代码更改)。
我的选择(如果还有更多,请告诉我)
1) 我可以提供围绕 int 和 string 的包装类,它们实现了 foo()、goo() 等方法
2) 提供一个特征类特征,该特征在提供 foo()、goo() 的类的对象上调用 foo() 或 goo()(这些是我目前的可替代类),并将这些类专门用于 int 和 string。
问题
1) 1 与 2 的相对优点是什么?
2)我的特征类将具有静态方法。特征类也可以具有非静态方法吗?我看到大多数特征类在 STL 中定义常量。
3) 我是否将特征类设为全局,还是应该将它们作为 C 类的模板参数传入?