相关疑难解决方法(0)

c ++模板部分特化成员函数

我是模板新手所以也许这是一件微不足道的事情,但我无法让它发挥作用.我试图获得类成员函数的部分特化.最短的代码是:

template <typename T, int nValue> class Object{
private:
    T m_t;
    Object();
public:
    Object(T t): m_t(t) {}
    T Get() { return m_t; } 
    Object& Deform(){ 
        m_t*=nValue; 
        return *this;
    }
};

template <typename T>
Object<T,0>& Object<T,0>::Deform(){
    this->m_t = -1;
    return *this;
}

int main(){
    Object<int,7> nObj(1);
    nObj.Deform();
    std::cout<<nObj.Get();
}
Run Code Online (Sandbox Code Playgroud)

我试过非成员函数,这很好.什么也工作正常是成员函数的完全专业化.

但是,每当我尝试部分规格时.一个成员函数我得到的形式错误:

PartialSpecification_MemberFu.cpp(17): error: template argument
list must match the parameter list Object<T,0>& Object<T,0>::Deform().
Run Code Online (Sandbox Code Playgroud)

将不胜感激任何帮助:-)

c++ templates specialization

32
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×1

specialization ×1

templates ×1