Domanda

Ho appena riorganizzato il codice per un progetto e ora ricevo errori che non riesco a risolvere. Questa intestazione è inclusa in un file .cpp che tenta di compilare.

#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);
};

Ricevo questi errori del compilatore per la dichiarazione di Entity :: getBitMask ():

errore C2143: errore di sintassi: mancante ';' prima di "< '

errore C2433: "Entity :: bitset": "virtuale" non consentito nelle dichiarazioni di dati

errore C4430: identificatore del tipo mancante - int assunto. Nota: C ++ non supporta default-int

errore C2238: token imprevisto che precede ';'

Ci sono altri errori simili anche per la riga successiva. Sembra che il bitset non venga incluso ma chiaramente lo è? Non riesco a capire cosa non va. WinMain.h include windows.h e numDefs.h non include nulla.

Uso di MS Visual C ++ 2008.

È stato utile?

Soluzione

Dichiara il bitset come std::bitset<MAX_SPRITE_PIXELS>.

Altri suggerimenti

Il modello bitset è definito nello spazio dei nomi std::, quindi devi fare riferimento al nome completo std::bitset o aggiungere using namespace std; da qualche parte prima della dichiarazione di classe.

Penso che dovresti dire std :: bitset.

Sembra un errore in " numDefs.h "

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top