Если бы у меня был базовый класс MessageWrapper с дочерним классом SetConfigurationData, почему привязка с параметром дочернего класса не работает?
Разве это не должно работать полиморфно?
Class MessageHandler
{
public:
void RegisterHandler(std::function<void(MessageWrapper &)> callback_)
{}
};
class Testing
{
public:
Testing(MessageHandler &handler_)
: m_Handler(handler_)
{
m_Handler.RegisterHandler(std::bind(&Testing::TestMessageHandler, this, std::placeholders::_1));
}
void TestMessageHandler(SetConfigurationData &msg_)
{}
MessageHandler m_Handler;
};
Я получаю сообщение об ошибке: "Не удалось специализировать шаблон функции "неизвестный тип std::invoke(Callable &&, Types &&..)"
Это работает, если я делаю это:
void TestMessageHandler(MessageWrapper &msg_)
{}