问题 C ++ - 如何在模板化类之外实现模板化成员函数


template<int N>
class myClass
{
    template<typename T>
    void myFunction();
};

template<typename T>
void myClass<int N>::myFunction() {} // doesn't work, nor do many other combinations!

嗨,

是否有可能实现上述目标?我可以在类定义中实现myFunction没问题。如果是这样,语法是什么? GCC 4.2告诉我:

缺少'>'来终止模板参数列表

谢谢你的帮助


9353
2018-01-28 21:46


起源

你的问题可能是模板<int N>吗?它应该是模板<typename T> no? - ColinCren
@Colin:这是一个非类型模板参数。 - James McNellis


答案:


您正在寻找:

template <int N>
template <typename T> 
void myClass<N>::myFunction() {} 

您必须有一个 template 用于类模板,一个用于成员函数模板。


12
2018-01-28 21:51



非常感谢它是一种享受! - Oli Larkin
@Oli:当然可以。我很高兴能帮到你。 - James McNellis


template<int N> template<typename T>
void myClass<N>::myFunction() {}

4
2018-01-28 21:49