gpt4 book ai didi

c++ - boost::function 的多个 typedef 的容器

转载 作者:行者123 更新时间:2023-11-30 04:16:36 25 4
gpt4 key购买 nike

我有很多

boost:function

类型定义的成员:

typedef boost::function<void(PARAM_LIST1)> Func1;
typedef boost::function<void(PARAM_LIST2)> Func2;
typedef boost::function<void(PARAM_LIST3)> Func3;
...//and more

Func1 f1;
Func2 f2;
Func3 f3;
...//and more

我想将 f1, f2, f3,... 存储在一个容器中。特别是,将所有 f 作为一个参数传递。

最好的容器是什么?我应该为模板使用什么类型?谢谢!

最佳答案

由于函数是不同的类型,并且没有允许使用基类(智能)指针的通用接口(interface),因此它们不能存储在 std::vector 或其他 中std 容器。

一个可能的解决方案是使用 boost::tuple ,或用户定义的容器 class,用于存储不同的函数类型,然后可以将其作为单个参数传递给函数。但是,这将每个函数类型的实例数限制为一个(除非使用每个函数类型的容器来存储函数实例)。在线查看tuple demo .

关于c++ - boost::function 的多个 typedef 的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17651667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com