1

我对 C++ 很陌生,所以我不确定我做错了什么。

这是我的构造:

结构

template<size_t N> struct Offsets 
{ 
    static const int length = N;
    DWORD offsets[N]; 
};

和财产:

template <size_t N>
std::map<std::string, std::map<DWORD, Offsets<N>>> pointers;

这导致一个

编译器错误 C1001。

那有什么问题?

4

2 回答 2

3

变量不能被模板化,它们必须完全指定。所以要声明你的pointers变量,你必须指定N.

于 2013-05-20T12:05:25.717 回答
1

您不能在变量上使用模板。如果您想保持指针的灵活性,请将其封装在模板类或结构中。

template< size_t N >
class PointerOffsetMap
{
...
public:
    std::map<std::string, std::map<DWORD, Offsets<N>>> pointers;
}

只是一个非常简单的示例,您可能应该将指针设为私有并添加一些访问函数以获得漂亮的接口。

于 2013-05-20T12:18:50.307 回答