代码如下
template<class T>
class A{
private:
static const T x;
。。。
。。
};
template<class T>
int A<T>::x=0;
template<class T>
float A<T>::x=1.0f;
有两个问题:
以上代码报错,说我重定义了常量静态成员变量,可是问题不同的模板实例需要不同的变量值,这种情况下应该如何实现?
关于初始化的位置问题,是应该放在头文件中还是应该放在实现文件中?
还有,你好像没有明白我的意思。讲具体一点,我想写一个叫做color的模板类,里面有两个标志了颜色取值的上下界的静态常量;有可能通过两种类型实例化它,一个是unsigned char类型0~255, 还有float 类型0.0f~1.0f。因此上下界必须针对不同的类型设定不同的值,这个问题如何解决?