0

为什么这段代码不能编译(Cygwin)?

#include <vector>

template <class Ttile>
class Tilemap
{
    typedef std::vector< Ttile > TtileRow;
    typedef std::vector< TtileRow > TtileMap;
    typedef TtileMap::iterator TtileMapIterator; // error here
};

错误:键入std::vector<std::vector<Ttile, std::allocator<_CharT> >, std::allocator<std::vector<Ttile, std::allocator<_CharT> > > >' is not derived from typeTilemap'

4

1 回答 1

4

因为TtileMap::iterator尚不知道它是一种类型。添加typename关键字来修复它

typedef typename TtileMap::iterator TtileMapIterator;
于 2010-03-15T15:56:59.750 回答