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.

Était-ce utile?

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 &";

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top