我对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。
这有什么问题吗?
发布于 2013-05-20 12:05:25
变量不能模板化,它们必须完全指定。因此,要声明pointers变量,必须指定N。
发布于 2013-05-20 12:18:50
不能在变量上使用模板。如果希望保持指针的灵活性,请将其封装在模板类或结构中。
template< size_t N >
class PointerOffsetMap
{
...
public:
std::map<std::string, std::map<DWORD, Offsets<N>>> pointers;
}只是一个非常简单的例子,您可能应该将指针设置为私有,并添加一些访问函数以获得一个很好的接口。
https://stackoverflow.com/questions/16649095
复制相似问题