小编lam*_*dae的帖子

在模板方法上编译错误,返回是来自内部类的实例

这是一个简化的例子:

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这里和那里坚持使用关键字无济于事.现在,我可以设法编译它的唯一方法是在类声明中内联方法定义,我想避免.

c++ templates

16
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

templates ×1