【发布时间】:2013-08-31 10:18:10
【问题描述】:
在 MinGW 工具链中使用 C++11 开关:
我想设置一个通用事件处理程序,它将一个指针参数(引用也可以)指向我可能想要的任何类型的类。
用泛型类指针作为参数声明函数指针的正确语法是什么?
我试过了:
typedef void ( *OnChange ) ( class* );
编译器错误:
typedef ‘OnChange’ 已初始化(改用 decltype)
我对 decltype() 不熟悉,从我读到的关于它的信息来看,这不是我需要的。
我也试过了:
typedef void ( *OnChange ) ( auto* );
编译器错误:
参数声明为“自动”
我认为这意味着 auto 不能用于参数声明。
我应该如何声明 typedef? (或者也许我需要做一些不同的事情?)
【问题讨论】:
-
这里的泛型类是什么?如果是模板化的,那么你可以使用模板的类型
-
你会如何使用这个函数指针?
-
这样的typedef应该放在模板
struct或class中,然后你可以很容易地引用模板参数。 -
您可能正在寻找类型擦除。除非您澄清其他评论者提出的一些问题,否则我们无法确定。