如何将具有派生参数的函数转换为具有基本参数的函数?

时间:2015-07-15 02:17:23

标签: c++ c++11

我有一个名为Reciever的类,其中包含一个名为recieve(const Event *)的函数,其中Event继承自BaseEvent。我想创建一个绑定到该类的特定实例。该实例称为rec。为此,我使用:

void(Reciever::*func)(const Event *) = &Reciever::recieve;
auto recievePtr = std::bind(func, &rec, std::placeholders::_1);

但是,当我尝试将其存储在向量中时,我必须指定一个std::function,其中BaseEvent为输入,而不是Event,如下所示:

std::vector<std::function<void(const BaseEvent*)>>

如何投射recievePtr以便我可以将其正确存储在矢量中?这甚至可能吗?使用指向BaseEvent的函数指针的问题是Reciever可以有多个recieve()方法,这些方法具有不同的派生类,所有这些都基于BaseEvent

0 个答案:

没有答案