Почему этот код не компилируется (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 type Tilemap '
std::vector<std::vector<Ttile, std::allocator<_CharT> >, std::allocator<std::vector<Ttile, std::allocator<_CharT> > > >' is not derived from type
Поскольку TtileMap::iterator еще не известен как тип. Добавьте ключевое слово typename, чтобы исправить это
TtileMap::iterator
typename
typedef typename TtileMap::iterator TtileMapIterator;