Itsumo sobani, itsumo hitori
Доброе утро. Недавно писал код и встретил непонятные ошибки компилятора (ввиду недостатка знаний). Ошибки я обошёл, но вопрос остался.
Вопрос 1.
template typename<T> typedef std::list<T> ::iterator ListIt;
Я как-то сделал подобный шаблон итератора от списка указанного типа (потом писать ListIt, например), но он потерялся, а сейчас нивкакую не удаётся - то ему typename перед typedef, то просто typedef не нравится.
Вопрос 2.
paste.org.ru/?v1mace
Моя логика: Параметр шаблона никак не используется. Определение структуры от него не зависит. Список из этих структур.
Однако компилятор требует либо typename перед определением итератора, либо можно вынести определение структуры из класса (не меняя вообще). А в таком виде пишеи, что MyList зависимый (от чего?) тип. Причём тока если я делаю итератор. Просто объявить MyList X; без проблем.
Вопрос 1.
template typename<T> typedef std::list<T> ::iterator ListIt;
Я как-то сделал подобный шаблон итератора от списка указанного типа (потом писать ListIt, например), но он потерялся, а сейчас нивкакую не удаётся - то ему typename перед typedef, то просто typedef не нравится.
Вопрос 2.
paste.org.ru/?v1mace
Моя логика: Параметр шаблона никак не используется. Определение структуры от него не зависит. Список из этих структур.
Однако компилятор требует либо typename перед определением итератора, либо можно вынести определение структуры из класса (не меняя вообще). А в таком виде пишеи, что MyList зависимый (от чего?) тип. Причём тока если я делаю итератор. Просто объявить MyList X; без проблем.
По второму вопросу - ну, gcc доходчиво объясняет.