» »

[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

BigWhale ::

> arr::iterator

Do tega lahko 'dostopas'. Morda ti kak include manjka. :)

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..

#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.

Zgodovina sprememb…

  • spremenil: Gundolf ()

Tutankhamun ::

Hvala...

Zdej pa dela.
AMD Phenom QUAD 9950 Black Edition, 8GB


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[PHP] Composer ne najde/vključi razreda izven vendor mape

Oddelek: Programiranje
51121 (960) krenpac
»

C++ programi

Oddelek: Programiranje
72498 (2094) ERGY
»

Vodenje videoteke v C++

Oddelek: Programiranje
51757 (1577) Tutankhamun
»

[JAVA] zaustavitev niti (threadov)

Oddelek: Programiranje
223140 (3140) morbo
»

Qt Designer -> KDevelop C++ Error

Oddelek: Programiranje
352103 (1633) 'FireSTORM'

Več podobnih tem