我是一個狂熱的emacs用戶,並希望使用sgml標記檢查例程。 我自然是朝着nsgmls的方向前進,並將源代碼降級以編譯它。無法編譯與模板錯誤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_;
};
任何人都可以幫我找出那些錯誤嗎?
爲什麼不去'onsgmls'(OpenSP的一部分)?我認爲這是最近的... –