模板类中的模板函数

Mic*_*ael 109 c++ templates

我有这个代码:

template <class T>
class MyClass {
    public:
        template <class U>
        void foo() {
            U a;
            a.invoke();
        }
};
Run Code Online (Sandbox Code Playgroud)

我希望它以这种形式:

template <class T>
class MyClass {
    public:
        template <class U>
        void foo();
};

template <class T> /* ????? */
void MyClass<T>::foo() {
    U a;
    a.invoke();
}
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?什么是正确的语法?

Ker*_* SB 163

写这个:

template <class T>
template <class U>
void MyClass<T>::foo() { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

  • @ user1074367:呃...是的,这就是我在答案中所说的,不是吗? (8认同)
  • @mike:会员模板是完全正常和常见的事情. (7认同)
  • 实际上我写道:template <class T> template <class U> void MyClass <T> :: foo(){U a; a.invoke(); 它有效 (3认同)