显式成员函数专业化

时间:2018-04-15 02:15:00

标签: c++11 templates template-specialization

我无法专门化以下模板成员函数。我已经看过给出回答SOF的类似问题的解决方案但是提出的解决方案与我下面的代码相同,但似乎没有用。我肯定错过了一些东西。

    enum EStep
    {
         eStep1, eStep2, eStep3
    };
    template<int16_t iDevice>
    struct Device
    {
        template<EStep step>
        static constexpr bool isType() { return false; }
    };

    template<> template<>
    constexpr bool Device<int16_t>::isType<eStep1>()
    {
        return true;
    }

1 个答案:

答案 0 :(得分:1)

print(list(data_employer.keys()).index(k), data_employer[k][0], data_employer[k][1])

Device是int16_t的模板,因此要专门化它,您需要提供int16_t值作为模板参数。 e.g。

template<> template<>
constexpr bool Device<int16_t>::isType<eStep1>()
{
    return true;
}