Fehler C++ in Klasse

Kamikaze

Warrior of Sunlight
Teammitglied
Code:
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_;
};

Die Zeile
Code:
typename Vector<RangeMapRange<From,To> >::const_iterator ptr_;
verursacht folgende Fehlermeldung:
Code:
In file included from ./../opensp/include/UnivCharsetDesc.h:14,
                 from ./../opensp/include/CharsetInfo.h:11,
                 from ./../opensp/include/Sd.h:13,
                 from ./../opensp/include/Event.h:20,
                 from ./../opensp/include/MessageEventHandler.h:7,
                 from spvalid.cpp:15:
./../opensp/include/RangeMap.h:57: error: expected `;' before "ptr_"

Mein Problem ist, ich sehe nicht was daran falsch sein soll.
 
probiers mal so:

Vector<RangeMapRange<typename From,typename To> >::const_iterator ptr_;

auf bald
oenone
 
Laeuft das so?

Sollte das nicht so heissen?

Code:
typename Vector<typename RangeMapRange<From,To> >::const_iterator ptr_;

Der Compiler soll ja From und To als Template Typen erkennen.
 
Ich hab's gefunden, diese Variante funktioniert:
Code:
  typename Vector<RangeMapRange<From,To> > ptr_;
 
Haste meinen Vorschlag mal probiert?
Code:
typename Vector<typename RangeMapRange<From,To> >::const_iterator ptr_;
Ich hab das bei mir nicht ausprobiert, aber ich wuerde behaupten, dass das helfen koennte.

Ansonsten wuerde ich mit typedef arbeiten, vielleicht laesst sich das damit loesen.
Code:
typedef typename RangeMapRange<From, To> RM;
typedef Vector<RM>::const_iterator VectorIt;

VectorIt ptr_;

HTH
 
was ist das überhaupt für eine klasse "Vector" ? meinst du vielleicht std::vector?

auf bald
oenone
 
hmm... vielleicht willste echt die Vektoren aus der STL verwenden... dann musst du das natuerlich klein schreiben, so:
Code:
typename vector<RangeMapRange<From,To> >::const_iterator ptr_;
 
Zurück
Oben