可能重复:
C++:为什么我不能使用浮点值作为模板参数?
我有这堂课:
template<typename ValueType, ValueType DefaultValue>
class SomeClass
{
public:
SomeClass() : m_value(DefaultValue){}
ValueType m_value;
};
我想像这样使用它:
SomeClass<int, 1> intObj; //ok
SomeClass<float, 1.f> floatObj; //error: 'float' : illegal type for non-type template parameter 'DefaultValue'
你能解释一下为什么我在使用时会出现这个错误float
吗?
我想使用类似的东西来表示 RGBA 颜色,并使用不同颜色表示的默认值初始化通道(例如白色)。