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

时间:2009-12-15 23:17:25

标签: c++ stl

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

error: expected `;' before 'it'

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

#include <list>

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

1 个答案:

答案 0 :(得分:12)

尝试:

typename std::list<LBBaseBlock< Z >* >::iterator it;

编辑:

有关说明,请参阅“Why do you sometimes need to write typename”。