0

我的私有类声明中有这个

#include "stdafx.h"
using namespace std;
    template <typename Key, typename T>
    class A{
    //....
    private:
        static const unsigned int HSIZE = 32;
        struct Bucket {
            Key key;
            T value;
            bitset<HSIZE> jumpMap;
        };
    //....
    };

给出以下错误:

Error   1   error C4430: missing type specifier - int assumed
Error   2   error C2059: syntax error : '<'
Error   3   error C2238: unexpected token(s) preceding ';'

当我删除 bitset 行时,它没有给我任何错误。我究竟做错了什么?

编辑:添加了更多相关行

4

2 回答 2

3

您是否包含了 bitset 标头?我想你错过了吗?

于 2011-09-10T18:26:14.680 回答
2

HMAX 应该改为 HSIZE 吗?否则,请确保包含 < bitset >,并且名称在范围内。您的代码中可能有一个 using 命名空间 std,因为您没有使用 std:: 限定它。但我的赌注是 HMAX <-> HSIZE。

于 2011-09-10T18:18:54.640 回答