无法在VC++中编译头文件

Ton*_*y R 1 c++ bitset visual-c++

我刚刚重新组织了一个项目的代码,现在我遇到了无法解决的错误.此标头包含在尝试编译的.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);
};
Run Code Online (Sandbox Code Playgroud)

我为Entity :: getBitMask()的声明得到了这些编译器错误:

错误C2143:语法错误:缺少';' 在'<'之前

错误C2433:'Entity :: bitset':数据声明中不允许'virtual'

错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int

错误C2238:';'之前的意外标记

下一行也有更多类似的错误.似乎bitset没有被包括但显然是?我无法弄清楚出了什么问题.WinMain.h包含windows.h,numDefs.h不包含任何内容.

使用MS Visual C++ 2008.

MSN*_*MSN 8

将bitset声明为std::bitset<MAX_SPRITE_PIXELS>.


sth*_*sth 5

bitset模板中定义std::的命名空间,所以你要么需要通过它的全名来引用它std::bitset或添加using namespace std;类声明之前的某个地方.

  • "add using namespace std; somewhere"但不在头文件中 (2认同)