Problème lors de la compilation d'un fichier d'en-tête dans VC ++
-
06-07-2019 - |
Question
Je viens de réorganiser le code d'un projet et maintenant je reçois des erreurs que je ne peux pas résoudre. Cet en-tête est inclus dans un fichier .cpp essayant de compiler.
#include "WinMain.h"
#include "numDefs.h"
#include <bitset>
class Entity
{
public:
Entity();
virtual ~Entity();
virtual bitset<MAX_SPRITE_PIXELS> getBitMask();
virtual void getMapSection(float x, float y, int w, int h, bitset<MAX_SPRITE_PIXELS>* section);
};
Je reçois ces erreurs de compilation pour la déclaration de Entity :: getBitMask ():
erreur C2143: erreur de syntaxe: manquant ';' avant '<'
erreur C2433: 'Entity :: bitset': 'virtuel' non autorisé sur les déclarations de données
erreur C4430: spécificateur de type manquant - int supposé. Remarque: C ++ ne prend pas en charge default-int
erreur C2238: jeton (s) inattendu (s) précédant ';'
Il y a également d'autres erreurs similaires pour la ligne suivante. Il semble que Bitset ne soit pas inclus mais c'est clairement? Je ne peux pas comprendre ce qui ne va pas. WinMain.h inclut Windows.h et numDefs.h ne comprend rien.
Utilisation de MS Visual C ++ 2008.
La solution
Déclarez le jeu de bits comme std::bitset<MAX_SPRITE_PIXELS>
.
Autres conseils
Le modèle bitset
est défini dans l'espace de noms std::
, vous devez donc le référencer par son nom complet std::bitset
ou ajouter using namespace std;
quelque part avant la déclaration de la classe.
Je pense que vous devez dire std :: bitset.
Ressemble à une erreur dans & "; numDefs.h &";
.