无法使用模板编译std :: list iterator

Jua*_*eni 2 c++ stl

当我尝试编译这个时,我收到此错误:

error: expected `;' before 'it'
Run Code Online (Sandbox Code Playgroud)

为什么我不能声明这个迭代器?问题出在哪儿?

#include <list>

template <typename Z>
class LBFuncBase: public LBBaseBlock<Z>
{
    void Something() {
         std::list<LBBaseBlock< Z >* >::iterator it;
    }
};
Run Code Online (Sandbox Code Playgroud)

Mic*_*Mic 13

尝试:

typename std::list<LBBaseBlock< Z >* >::iterator it;
Run Code Online (Sandbox Code Playgroud)

编辑:

有关说明,请参阅" 为什么有时需要写入typename ".