Problema MountSystem.h

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Închis
Avatar utilizator
CiocoBoco
Nivel 1

Nivel 1
Mesaje: 133
Membru din: 22 Apr 2014, 23:18
Aprecieri: 2  
Mulţumiri: 2  
 Contact:
Medalii

*Problemă: Primesc o eroare la compilarea sursei
Tipologie server: pvm
*Resursă folosită: Un serverfiles clean
*ServerFiles utilizat: -
*Syserr:

Cod: Selectaţi tot

MountSystem.h:60: error: ISO C++ forbids declaration of 'unordered_map' with no type
MountSystem.h:60: error: typedef name may not be a nested-name-specifier
MountSystem.h:60: error: expected ';' before '<' token
MountSystem.h:94: error: 'TMountActorMap' does not name a type
Poză: - se vede mai sus -
*Detalii suplimentare:
Linia problematica este aceasta:

Cod: Selectaţi tot

typedef	boost::unordered_map<CMountActor*>	TMountActorMap;
Am incercat sa modific "boost" cu "std" si sa compilez folosindu-ma de C++11, dar tot acolo se ajunge.

Fisierul intreg este mai jos in spoiler.

Cod: Selectaţi tot

#ifndef	__HEADER_MOUNT_SYSTEM__
#define	__HEADER_MOUNT_SYSTEM__
       
 
  
class CHARACTER;

 
class CMountActor
{
	protected:
		friend class CMountSystem;
		CMountActor(LPCHARACTER owner, DWORD vnum);
		
		virtual ~CMountActor();
		virtual bool	Update(DWORD deltaTime);
		
	protected:
		virtual bool	_UpdateFollowAI();
		virtual bool	_UpdatAloneActionAI(float fMinDist, float fMaxDist);
		
	private:
		bool Follow(float fMinDistance = 50.f);
		
	public:
		LPCHARACTER		GetCharacter()	const					{ return m_pkCharacter; }
		LPCHARACTER		GetOwner()	const						{ return m_pkOwner; }
		DWORD			GetVnum() const							{ return m_dwVnum; }
		DWORD			GetVID() const							{ return m_dwVID; }
		
		void			SetName(const char* MountName);
		DWORD			Mount();
		DWORD			Unmount();

		DWORD			Summon(const char* MounName, DWORD mobVnum);
		void			Unsummon();

		bool			IsSummoned() const { return 0 != m_pkCharacter; }
		bool			IsMounting() const { return m_dwMounted; }
	
		void			UpdateTime();

	private:
		DWORD			m_dwVnum;
		DWORD			m_dwVID;
		DWORD			m_dwLastActionTime;
		DWORD			m_dwUpdatePeriod;
		DWORD			m_dwLastUpdateTime;
		short			m_OMoveSpeed;
		bool			m_dwMounted;
		std::string		m_Name;

		LPCHARACTER		m_pkCharacter;
		LPCHARACTER		m_pkOwner;
};

class CMountSystem
{
	public:
		typedef	boost::unordered_map<CMountActor*>	TMountActorMap;
		

	public:
		CMountSystem(LPCHARACTER owner);
		virtual ~CMountSystem();

		CMountActor*	GetByVID(DWORD vid) const;
		CMountActor*	GetByVnum(DWORD vnum) const;

		bool		Update(DWORD deltaTime);
		void		Destroy();

		size_t		CountSummoned() const;

	public:
		void		SetUpdatePeriod(DWORD ms);

		CMountActor*	Summon(DWORD mobVnum, const char* MountName);
		CMountActor*	Mount(DWORD mobVnum);
		CMountActor*	Unmount(DWORD mobVnum);
		
		void		Unsummon(DWORD mobVnum, bool bDeleteFromList = false);
		void		Unsummon(CMountActor* MountActor, bool bDeleteFromList = false);

		CMountActor* 	Mount(DWORD mobVnum, const char* MountName);
		
		void		DeleteMount(DWORD mobVnum);
		void		DeleteMount(CMountActor* MountActor);
		bool		IsActiveMount();
		bool		IsMounting(DWORD mobVnum);
		void		UpdateTime();
	
	private:
		TMountActorMap	m_MountActorMap;
		LPCHARACTER		m_pkOwner;	
		
		DWORD			m_dwUpdatePeriod;
		DWORD			m_dwLastUpdateTime;
		LPEVENT			m_pkMountSystemUpdateEvent;
};

#endif
Imagine
Afișează semnătura
Avatar utilizator
Moț
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 2825
Membru din: 03 Apr 2017, 15:00
Aprecieri: 216  
Mulţumiri: 3040  
Discord: Copiază ID
Medalii

Arată mi stdafx.h

[ Postat de pe Android ] Imagine
Imagine
Afișează semnătura
Avatar utilizator
CiocoBoco
Nivel 1

Nivel 1
Mesaje: 133
Membru din: 22 Apr 2014, 23:18
Aprecieri: 2  
Mulţumiri: 2  
 Contact:
Medalii

Predator™ scrie:Arată mi stdafx.h

[ Postat de pe Android ] Imagine
L-am adaugat in spoiler.

Cod: Selectaţi tot

// Basic features
// Enable or disable memory pooling for specific object types
//#define M2_USE_POOL
// Enable or disable heap allocation debugging
//#define DEBUG_ALLOC

#include "debug_allocator.h"

#include "../../libthecore/include/stdafx.h"

#include "../../common/singleton.h"
#include "../../common/utils.h"
#include "../../common/service.h"

#include <algorithm>
#include <math.h>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <string>
#include <vector>

#ifdef __GNUC__
#include <float.h>
#include <tr1/unordered_map>
#include <tr1/unordered_set>
#define TR1_NS std::tr1
#else
#include <boost/unordered_map.hpp>
#include <boost/unordered_set.hpp>
#define TR1_NS boost
#define isdigit iswdigit
#define isspace iswspace
#endif

#include "typedef.h"
#include "locale.hpp"
#include "event.h"

#define PASSES_PER_SEC(sec) ((sec) * passes_per_sec)

#ifndef M_PI
#define M_PI    3.14159265358979323846 /* pi */
#endif
#ifndef M_PI_2
#define M_PI_2  1.57079632679489661923 /* pi/2 */
#endif

#define IN
#define OUT
Imagine
Afișează semnătura
Avatar utilizator
ZeNu
Utilizator neserios / Untrustworthy user !

Utilizator neserios / Untrustworthy user !
Mesaje: 625
Membru din: 03 Aug 2017, 21:43
Regat: Shinsoo
Aprecieri: 122  
Mulţumiri: 496  
 Contact:
Medalii

#include <boost/unordered_map.hpp>
Pentru acest mesaj, ZeNu for the post:
CiocoBoco
Imagine
Afișează semnătura
Avatar utilizator
Moț
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 2825
Membru din: 03 Apr 2017, 15:00
Aprecieri: 216  
Mulţumiri: 3040  
Discord: Copiază ID
Medalii

Pune in loc de std sau boost " TR1_NS " .
typedef TR1_NS::unordered_map<CMountActor*> TMountActorMap

[ Postat de pe Android ] Imagine
Pentru acest mesaj, Moț a primit 2 (de) mulţumiri
CiocoBoco • HuaMulan2021
Imagine
Afișează semnătura
Avatar utilizator
CiocoBoco
Nivel 1

Nivel 1
Mesaje: 133
Membru din: 22 Apr 2014, 23:18
Aprecieri: 2  
Mulţumiri: 2  
 Contact:
Medalii

Elijah scrie:#include <boost/unordered_map.hpp>
Merci mult! Eu incercasem mai devreme cu "#include <unordered_map>", dar nu reusea sa citeasca fisierul.
Predator™ scrie:Pune in loc de std sau boost " TR1_NS " .
typedef TR1_NS::unordered_map<CMountActor*> TMountActorMap

[ Postat de pe Android ] Imagine
O sa incerc si varianta asta, momentan am rezolvat cu include-ul de mai sus. Multumesc frumos pentru ajutor!
Se poate da T/C.
Imagine
Afișează semnătura
Închis

Înapoi la “Probleme rezolvate”

  • Informaţie