这是一个简化的例子:
template<typename T>
class MyTemplate
{
class Inner {};
Inner met();
};
template<typename T>
MyTemplate<T>::Inner MyTemplate<T>::met()
{ }
Run Code Online (Sandbox Code Playgroud)
我收到以下编译错误:
expected constructor, destructor, or type conversion before 'met'
Run Code Online (Sandbox Code Playgroud)
我用GCC.似乎编译器不能识别MyTemplate<T>::Inner为正确的类.我怎样才能解决这个问题?我试过在typename这里和那里坚持使用关键字无济于事.现在,我可以设法编译它的唯一方法是在类声明中内联方法定义,我想避免.