我对C ++很新,所以我不确定我做错了什么。
这是我的构造:
STRUCT
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。
那有什么不对吗?
答案 0 :(得分:3)
变量无法模板化,必须完全指定。因此,要声明pointers
变量,您必须指定N
。
答案 1 :(得分:1)
您不能在变量上使用模板。如果你想保持指针灵活,请将它封装在模板类或结构中。
template< size_t N >
class PointerOffsetMap
{
...
public:
std::map<std::string, std::map<DWORD, Offsets<N>>> pointers;
}
只是一个非常简单的例子,您应该将指针设为私有,并添加一些访问函数以获得一个不错的界面。