一个功能的指针指向一个函数的一个目的模板类与上述功能的指针为模板的论点。可能吗?
-
23-08-2019 - |
题
x__x
我想要做这样的事情:
typedef long (* fp)(BaseWindow< fp > & wnd, HWND hwnd, long wparam, long lparam);
但我得到一个编译错误:
错误C2065:'p':未申报的 标识符
是否有可能实现这种莫名其妙?
解决方案
没有它不是,因为模板参数的类型将包括本身。这将产生在类型的无限递归。
如果不是类模板专业化,你接受一个基类的话,这是非常有可能的。
struct TemplateBase {
};
typedef long (*fpType)(TemplateBase&, HWND, long, long);
template<fpType FP>
struct BaseWindow : TemplateBase {
};
long sampleFunc(TemplateBase &b, HWND hwnd, long wparam, long lparam) {
...
}
int main() {
BaseWindow<sampleFunc> bw;
sampleFunc(bw, ...);
}
你要什么与此有关呢?
其他提示
从有关部分链接在这个非常页: 我怎么能typedef功能的指针,需要一个功能自己的类型作为一个争论?
不隶属于 StackOverflow