Вектор векторов Т в классе <T> - PullRequest
0 голосов
/ 15 марта 2010

Почему этот код не компилируется (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 '

1 Ответ

4 голосов
/ 15 марта 2010

Поскольку TtileMap::iterator еще не известен как тип. Добавьте ключевое слово typename, чтобы исправить это

typedef typename TtileMap::iterator TtileMapIterator;
...