Есть примерно такой код
template <class TD>
class TGuide
{
vector<TD> List;
vector<TD>::iterator Begin;
}
Компилятор ругается. К сожалению я сейчас не вспомню ошибку.
Но ругается на вот эту строкуЖ
vector<TD>::iterator Begin;
В чем причина??
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
Здравствуйте, 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;
}
Здравствуйте, 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
Здравствуйте, 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 является типом.