gpt4 book ai didi

c++ - 如何将 2 个独立的 boost::bind() 组合成一个 boost::function?

转载 作者:太空狗 更新时间:2023-10-29 21:05:46 26 4
gpt4 key购买 nike

我有 2 个函数 f()g()。我想每次都按顺序调用他们。我可以获得一个 boost::function 来执行此操作吗?例如。像这样的东西:

boost::function functor = boost::bind( boost::bind(f), boost::bind(g) );

进一步扩展,说它需要参数,那么我需要的是一个责任链。每个节点都用参数做一些事情,然后是链的下一个节点。我该怎么做?


更新 感谢 Seth Carnegie 的评论。我想我真正想要的是如何将责任链构造成单个 boost::function,链的每个节点都可以使用 boost::bind().

最佳答案

您是否考虑过使用 boost::signal

使用 boost::signal,您可以将多个函数调用连接成一个。

#include <boost/signal.hpp> 
#include <iostream>

void f()
{
std::cout << " Hello" << std::flush;
}

void g()
{
std::cout << " World" << std::endl;
}

int main()
{
boost::signal<void ()> s;
s.connect(f);
s.connect(g);
s();
}

关于c++ - 如何将 2 个独立的 boost::bind() 组合成一个 boost::function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9028661/

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