我目前正在为处理器开发一个简单而抽象的仿真器,我正在使用一个表将机器代码操作码转换为操作。当前,这个表保存委托函数(由外部库提供)的指针,这是我当时(在C++11之前)唯一可以调用子类实例的成员函数的选项。
到目前为止,Lambdas看起来可以提供一个完美的替代,但我仍然希望支持普通函数指针。关于lambdas的本教程展示了一个示例,您可以对lambdas和函数指针进行相同的处理,但我想知道是否可以存储一个函数指针和lambdas的混合数组,这样我也可以将它们存储在相同的位置。
发布于 2014-01-24 17:50:49
std:功能是一种为所有可调用的事物执行类型擦除的机制。
您可以拥有一个std::function的集合,并将带有该签名的函数指针放在带有该签名的lambdas旁边。与直接使用函数指针相比,存在一些开销。值得注意的是,没有由规范指定的lambda类型,因此不能直接写下来,但是它总是可以放在std::function包装器中。
https://stackoverflow.com/questions/21339038
复制相似问题