gpt4 book ai didi

c++ - 如何使用/操作嵌套 boost::bind 的返回值

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:44 25 4
gpt4 key购买 nike

我有两个功能:1. 数据源();2. void DataConsumer( A * );

我想要实现的目标:使用一条语句将它们组装成一个仿函数

我试过:

1. boost::function< void()> func( boost::bind( DataConsumer, & boost::bind( DataSource ) ) );

当然它没有工作,编译器说它不能将 'boost::_bi::bind_t ' 转换为 'A *'

2. boost::function< void()> func( boost::bind( DataConsumer, boost::addressof( boost::bind( DataSource ) ) ));

编译器说不能将参数 1 从 'boost::_bi::bind_t' 转换为 'A &'

问题:如何使用嵌套的 boost::bind 的返回值?或者,如果您想使用 boost::lambda::bind。

最佳答案

伙计们,我刚找到答案,如下所示:

boost::function< void()> func(
boost::bind( DataConsumer,
boost::bind( boost::addressof< A >, boost::bind< A& >( DataSource ) )
) );

理论应该是:既然我们稍后调用DataSource,我们也需要一个稍后使用返回值的仿函数。

关于c++ - 如何使用/操作嵌套 boost::bind 的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2650614/

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