Проблемы с компиляцией заголовочного файла в VC ++ - PullRequest
1 голос
/ 22 июня 2009

Я просто реорганизовал код для проекта, и теперь я получаю ошибки, которые не могу устранить. Этот заголовок включен в файл .cpp, пытающийся скомпилировать.

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

Я получаю эти ошибки компилятора для объявления Entity :: getBitMask ():

ошибка C2143: синтаксическая ошибка: отсутствует ';' до '<' </p>

ошибка C2433: «Entity :: bitset»: «виртуальный» не разрешен в объявлениях данных

ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C ++ не поддерживает default-int

ошибка C2238: неожиданный токен (ы), предшествующий ';'

Есть и другие похожие ошибки и в следующей строке. Кажется, что bitset не включается, но это ясно? Я не могу понять, что происходит не так. WinMain.h включает в себя windows.h, а numDefs.h ничего не включает.

Использование MS Visual C ++ 2008.

Ответы [ 4 ]

8 голосов
/ 22 июня 2009

Объявить битовый набор как std::bitset<MAX_SPRITE_PIXELS>.

5 голосов
/ 22 июня 2009

Шаблон bitset определен в пространстве имен std::, поэтому вам нужно либо ссылаться на него по его полному имени std::bitset, либо добавить using namespace std; где-то перед объявлением класса. *

4 голосов
/ 22 июня 2009

Я думаю, вам нужно сказать std :: bitset.

0 голосов
/ 22 июня 2009

Выглядит как ошибка в "numDefs.h"

...