Forum » Programiranje » [c++] g++ linux ne prevede se mi koda
[c++] g++ linux ne prevede se mi koda
Tutankhamun ::
#main.cpp #include "map" using namespace std; template < typename psr > class CdrParseUnit { public: CdrParseUnit (psr *p) : m_psr (p), m_data (NULL), m_inUse (NULL) {} virtual ~CdrParseUnit () {} public: virtual void Connect (void *data, bool *inUse) { m_data = data; m_inUse = inUse; if (inUse != NULL) *m_inUse = false; } virtual void *GetData (bool inUse) { *m_inUse = inUse; return m_data; } virtual int Parse () = 0; protected: psr *m_psr; void *m_data; bool *m_inUse; }; template < typename psr > class HeadPsr200 : public CdrParseUnit < psr > { public: HeadPsr200 (psr *p) : CdrParseUnit < psr > (p) {} virtual int Parse () { return this->m_psr->Parse (this); } }; template < typename psr > class CRecordParse { public: CRecordParse (psr *p) : m_psr (p) { m_units[200] = m_head200 = new HeadPsr200 < psr > (p); } ~CRecordParse () { for (arr::iterator iter = m_units.begin(); iter != m_units.end(); ++iter) delete iter->second; } private: psr *m_psr; protected: typedef map<long,CdrParseUnit< psr >*> arr; arr m_units; };
prevajam pa tako:
g++ -Wall -c main.cpp
rezultat pa je tak:
main.cpp: In destructor ‘CRecordParse< psr >::~CRecordParse()’:
main.cpp:48: error: expected `;' before ‘iter’
main.cpp:48: error: ‘iter’ was not declared in this scope
Visual studio mi pa prevede...
AMD Phenom QUAD 9950 Black Edition, 8GB
Tutankhamun ::
Vem da je tm neki narobe, sam nevem kaj. Lej če pa predelam to datoteko, tko da par stvari zbrišem pa se prevede..
Js mislm da je zarad teh template-ov neki narobe...
#include "map" using namespace std; class CRecordParse { public: ~CRecordParse () { for (arr::iterator iter = m_units.begin(); iter != m_units.end(); ++iter) delete iter->second; } protected: typedef map<long,long*> arr; arr m_units; };
Js mislm da je zarad teh template-ov neki narobe...
AMD Phenom QUAD 9950 Black Edition, 8GB
Gundolf ::
typename arr::iterator
Aja, tako napisi v tisti zanki, kjer je napaka, pa bo delalo. Prevec templejtov na kupu je lahko prevec, da bi kompajler vedel kaj vse je subclass in kaj je member spremenljivka tega ali onega classa.
Aja, tako napisi v tisti zanki, kjer je napaka, pa bo delalo. Prevec templejtov na kupu je lahko prevec, da bi kompajler vedel kaj vse je subclass in kaj je member spremenljivka tega ali onega classa.
Zgodovina sprememb…
- spremenil: Gundolf ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [PHP] Composer ne najde/vključi razreda izven vendor mapeOddelek: Programiranje | 1183 (1022) | krenpac |
» | C++ programiOddelek: Programiranje | 2521 (2117) | ERGY |
» | Vodenje videoteke v C++Oddelek: Programiranje | 1777 (1597) | Tutankhamun |
» | [JAVA] zaustavitev niti (threadov)Oddelek: Programiranje | 3175 (3175) | morbo |
» | Qt Designer -> KDevelop C++ ErrorOddelek: Programiranje | 2121 (1651) | 'FireSTORM' |