invalid conversion from `const uint8_t' to `WeaponType'

0

witam, jak naprawić powyższy błąd? występuję tylko na devcpp, na linuxie go NIE MA...

WeaponType Item::getWeaponType() const {	
	return ItemWeaponTypeFromXML;
}

uint8_t ItemWeaponTypeFromXML;

enum WeaponType 
{
	NONE = 0,
	SWORD = 1, 
	CLUB = 2,
	AXE = 3,
	SHIELD = 4,
	DIST = 5,
	MAGIC = 6,
	AMO = 7,
};
1

Typy się nie zgadzają, musisz zrzutować. return static_cast<WeaponType>(ItemWeaponTypeFromXML);

4
Programistyczny napisał(a):

witam, jak naprawić powyższy błąd? występuję tylko na devcpp, na linuxie go NIE MA...

Tradycyjny enum w C++ ma dość słabą kontrolę typów<-> integery , np jako warning (a to może być wyłączone). To cała nieszczęsna kompatybilności z C kopie w ...pę

Nowsze jest w pełni bezpieczne class enum

https://devcode.pl/cpp11-enum-class/

1 użytkowników online, w tym zalogowanych: 0, gości: 1