g ++中的"期望的类型说明符"错误

pro*_*eek 0 c++ g++

我有一个DD类

template<typename T>
class DD
: public IEnumerable<T>
{
    typedef IEnumerable<T> Super;
    typedef std::set<T*> Container;
Run Code Online (Sandbox Code Playgroud)

和方法

template<typename T>
bool DD<T>::Enumerator::Move()
{
    if(!mIt.get()) 
       mIt.reset(
          new Container::iterator( <-----
            mContainer.GetContainer().begin()
          )
       );
       ... 
}
Run Code Online (Sandbox Code Playgroud)

当我编写课程时,我得到了error: expected type-specifier.怎么了Container::iterator()

Win*_*ert 12

尝试:

new typename Container::iterator
Run Code Online (Sandbox Code Playgroud)

当您使用C++模板时,编译器不知道Container :: iterator是一个类型还是其他东西.所以你需要明确地说它是一个类型.

另一方面,使用new创建迭代器几乎肯定是错误的.