简体   繁体   English

部分功能模板专业化

[英]partial function template specialization

Hi I think I'm missing something with this technique. 嗨,我想我没有使用这项技术。 Tried to follow examples but the following gives me an error: invalid use of incomplete type 'class Citizen<T, minAge, maxAge, true>' 试图按照以下示例进行操作,但以下内容给我一个错误: invalid use of incomplete type 'class Citizen<T, minAge, maxAge, true>'

template <typename T, T minAge, T maxAge, bool isarmed>
class Citizen {
public:

    Citizen(T health, T age);
    Citizen(T health, T age, T attackPower);
    T getAttackPower();

private:
    T _health;
    T _age;
    T _attackPower;
};

template <typename T, T minAge, T maxAge>
T Citizen<T, minAge, maxAge, true>::getAttackPower() {
    return _attackPower;
}

您不能对单个成员函数使用部分模板专业化-需要专门对整个类进行专业化(但是,完全模板专业化也可以)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM