为什么我不能在float上专门化一个C ++类模板?

时间:2016-08-19 11:42:55

标签: c++ templates template-specialization

我有以下课程模板:

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

0 个答案:

没有答案