webForumDet fria alternativet

STL map - Lite snabbt nu innan wF går ner inför v3 ;)

C/C++

3 svar · 755 visningar · startad av Alpha II

Medlem sedan maj 20002 993 inlägg
Frågan#1

Är detta någon slags bug eller varför får jag det inte att fungera?

class ConfigFileObject
{
private:
	int getLineBreak(string & s, int offset);
	int getNextTokenIndex(string & s, int offset);
	ConfigFileVariable parseVariableValue(string & s);

public:
	void clear();
	int parse(string & config, int offset = 0);

	map<string, ConfigFileVariable> vars;
	map<string, ConfigFileObject> objects; // <--------
};

Felmeddelandet blir

c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\utility(56): error C2079: 'std::pair<_Ty1,_Ty2>::second' uses undefined class 'ConfigFileObject'
with
[
_Ty1=const std::string,
_Ty2=ConfigFileObject
]

Medlem sedan maj 20002 993 inlägg
#2

Jag omformulerade min fråga till Google ett tjugotal gånger och efter att ha hittat en forumtråd på GameDev så fann jag denna sida http://www.cuj.com/documents/s=7986/cujcexp2002austern/. Men inte gjorde det mig till en gladare människa! :( Svaret är: Omöjligt. Anledningen är att: C++ standard organistaionen säger så...

Nu får det bli pekare istället och en hel drös med kod för att hålla koll på minnet. :(

Medlem sedan juli 2002581 inlägg
#3

Japp, en klass kan inte innehålla sig själv som objekt.

Medlem sedan juli 2002581 inlägg
#4

Dock kan du göra det ganska smidigt om du använder något i stil med boost::scoped_pointer.

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)