"在'const'错误之前预期的嵌套名称说明符",其中typename为in g ++

pro*_*eek 7 c++ g++

我在C++中有这个代码

template<typename T>
class DD
: public enumerables<T>

{
...
private:
    typename const DD<T>& mContainer;
}
Run Code Online (Sandbox Code Playgroud)

它给了我两个错误消息:

  1. 错误:'const'之前的预期嵌套名称说明符
  2. 错误:'&'标记之前的声明符无效

typename const代码有什么问题?它使用MSVC C++编译得很好.

添加

typename DD<T>& const mContainer;const typename DD<T>& mContainer;给我同样的错误.

AnT*_*AnT 12

嗯,在那typename做什么?你不是指嵌套类型,所以typename完全没必要.我要说错误是由于不正当使用而造成的typename,而不是通过订购声明的部分或其他任何内容.

它应该是公正的

const DD<T>& mContainer;
Run Code Online (Sandbox Code Playgroud)

甚至

const DD& mContainer;
Run Code Online (Sandbox Code Playgroud)