当我尝试编译时,我收到此错误:
error: expected `;' before 'it'
为什么我不能声明这个迭代器?问题在哪里?
#include <list>
template <typename Z>
class LBFuncBase: public LBBaseBlock<Z>
{
void Something() {
std::list<LBBaseBlock< Z >* >::iterator it;
}
};
答案 0 :(得分:12)
尝试:
typename std::list<LBBaseBlock< Z >* >::iterator it;
编辑:
有关说明,请参阅“Why do you sometimes need to write typename”。