我有以下课程模板:
template<typename T, T n> class Some
{
public:
Some() : v(n) {}
T get() const { return v ; }
private:
T v;
};
我很乐意专注于int,就像:
template <>
class Some<int, 0>
{
public:
Some() : v(0) {}
int get() const {return v;}
private:
int v;
};
但是,如果我尝试使用float
:
template <>
class Some<float, 0>
{
public:
Some() : v(0) {}
float get() const {return v;}
private:
float v;
};
我得到了丑陋的编译错误:
error: 'float' is not a valid type for a template non-type parameter
class Some<float, 0>
^
为什么呢?我怎样才能使课程适用于float
?