私はこのクラスを持っています:
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色を表現し、さまざまな色表現(たとえば白)のデフォルト値でチャネルを初期化するために、同様のものを使用したいと思います。