Итераторы от шаблонного вектора
От: k55 Ниоткуда  
Дата: 07.09.06 02:57
Оценка:
Есть примерно такой код


template <class TD> 

class TGuide
{
 vector<TD> List;
 vector<TD>::iterator Begin;
}


Компилятор ругается. К сожалению я сейчас не вспомню ошибку.
Но ругается на вот эту строкуЖ

vector<TD>::iterator Begin;



В чем причина??
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
Re: Итераторы от шаблонного вектора
От: _Dreamer Россия  
Дата: 07.09.06 03:59
Оценка:
Здравствуйте, k55, Вы писали:

k55>Компилятор ругается. К сожалению я сейчас не вспомню ошибку.

k55>Но ругается на вот эту строкуЖ

k55>
k55>vector<TD>::iterator Begin;
k55>

k55>В чем причина??

нужен typename —
template <class TD> 
class TGuide
{
 vector<TD> List;
 typename vector<TD>::iterator Begin;
}
Re: Итераторы от шаблонного вектора
От: Master Yoda Великобритания  
Дата: 07.09.06 04:00
Оценка:
Здравствуйте, k55, Вы писали:

k55>В чем причина??


template <class TD> 
class TGuide
{
  vector<TD> List;
  typename vector<TD>::iterator Begin;
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re: Итераторы от шаблонного вектора
От: Alex_Avr Россия  
Дата: 07.09.06 04:11
Оценка: 1 (1)
Здравствуйте, k55, Вы писали:

k55>Есть примерно такой код


k55>

k55>template <class TD> 

k55>class TGuide
k55>{
k55> vector<TD> List;
k55> vector<TD>::iterator Begin;
k55>}

k55>


k55>Компилятор ругается. К сожалению я сейчас не вспомню ошибку.

k55>Но ругается на вот эту строкуЖ

k55>
k55>vector<TD>::iterator Begin;
k55>


k55>В чем причина??


Во-первых, после определения класса отсутствует точка с запятой.

Во-вторых, включен ли загловочный файл <vector> и есть ли using namespace std
или using std::vector?

В-третьих, чтобы быстрее ответили на твой вопрос нужно предоставлять полный пример,
который можно откомпилировать.

Вот такой код компилируется:

#include <vector>

template <class TD>
class TGuide
{
    std::vector<TD> List;
    typename std::vector<TD>::iterator Begin;
};


Похоже, что проблема была в отсутствии выделенного ключевого слова, которое указывает,
что зависимое от шаблонного класса vector имя iterator является типом.
С уважением, Александр Авраменко.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.