使用可重写的处理程序函数构建类层次结构 我现在试图用C++模板自动构建类层次结构。最终的结果是一个消息处理程序类,它为所有可能的消息提供处理程序函数,这些消息在类型列表中给出 但是,当继承该类层次结构并尝试实现处理函数时,实际上只对某些类型的应用程序代码,C++不调用基类的函数。

使用可重写的处理程序函数构建类层次结构 我现在试图用C++模板自动构建类层次结构。最终的结果是一个消息处理程序类,它为所有可能的消息提供处理程序函数,这些消息在类型列表中给出 但是,当继承该类层次结构并尝试实现处理函数时,实际上只对某些类型的应用程序代码,C++不调用基类的函数。,c++,templates,typelist,C++,Templates,Typelist,下面是我试图实现的一个最小且完整的示例。它不编译,因为C++抱怨没有找到超载的代码>句柄(const b&) #包括 #包括 //类型列表。 结构无{}; 模板 结构类型表{ H型头; T型尾; }; 模板 结构处理程序:公共处理程序{ 使用Handler::handle; 虚拟空句柄(const typename TL::Head和obj){ std::cout您需要在MyHandler类中使用来自handle的句柄 using Handler<MsgList>::handle;

下面是我试图实现的一个最小且完整的示例。它不编译,因为C++抱怨没有找到超载的代码>句柄(const b&)
#包括
#包括
//类型列表。
结构无{};
模板
结构类型表{
H型头;
T型尾;
};
模板
结构处理程序:公共处理程序{
使用Handler::handle;
虚拟空句柄(const typename TL::Head和obj){

std::cout您需要在
MyHandler
类中使用来自
handle
的句柄

using Handler<MsgList>::handle;
使用Handler::handle;

现在它是隐藏的,不要在
MyHandler
类中重载名称
handle
using Handler<MsgList>::handle;