Я заядлый пользователь emacs и хочу использовать процедуру проверки разметки sgml.
Я, естественно, направлялся к nsgmls и загружал исходный код для его компиляции.
Тем не менее, произошла странная ошибка, исходящая от компилятора:
./../include/RangeMap.h:57: error: type ‘Vector<RangeMapRange<From, To> >’ is not deri ved from type ‘RangeMapIter<From, To>’
./../include/RangeMap.h:57: error: expected ‘;’ before ‘ptr_’
./../include/RangeMap.h: In member function ‘Boolean RangeMapIter<From, To>::next(From&, From&, To&)’:
./../include/RangeMap.h:47: error: ‘ptr_’ was not declared in this scope
Я знаю, что иногда компилятору не нравятся безумие по шаблонам и типам, но коды, похоже, уже правильно использовали тип кода в коде.
Вот фрагменты кода, которые вызывают эти ошибки.
template<class From, class To>
class RangeMapIter {
public:
RangeMapIter(const RangeMap<From,To> &map);
Boolean next(From &fromMin, From &fromMax, To &toMin) {
if (!count_)
return 0;
else {
fromMin = ptr_->fromMin;
fromMax = ptr_->fromMax;
toMin = ptr_->toMin;
ptr_++;
count_--;
return 1;
}
}
private:
size_t count_;
typename Vector<RangeMapRange<From,To> >::const_iterator ptr_;
};
Может кто-нибудь помочь мне разобраться в этих ошибках?