boost::signals的2个最简单用法

ROS noetic 解决boost_signals报错问题 CMake Error:Could not find a package configuration file provided by "boost_signals" 阅读详情

 
#include <boost/bind.hpp>
#include <boost/signal.hpp>
#include <iostream>
using namespace std;

struct MYSTRUCT
{
 void operator()()
 {
  std::cout<<"Hello,World!"<<std::endl;
 }

 void fun(const string& msg)
 {
  cout<<msg<<endl;
 }
};

//////////////////////////////////////////////////////////////////////////
int main()
{
 //exam 1
 MYSTRUCT fun;
 boost::signal< void(string) >          sig;
 boost::signal< void(string) >::slot_function_type  slot;

 slot = boost::bind(&MYSTRUCT::fun , &fun , _1);
 sig.connect(slot);

 ////emit signal
 sig("hello ori");

 //exam 2
 boost::signal<void()> sig2;
 MYSTRUCT hello;
 sig2.connect(hello);
 sig2();

 system("pause");
 return 0;
}

BOOST C++ 20 设计模式】(2)库Boost.Signals2 Boost.Signals2 实现了信号/槽的概念。一个或多个函数(称为槽)与可以发出信号的对象相关联。每次发出信号时,都会调用链接的函数。 阅读详情

相关推荐

boost---signals2使用详解

1、signals2实现了线程安全的“观察者模式”,也称作:信号---插槽,他是一种函数的回调机制,当信号发出时,相应的槽函数会被调用,有点类似于QT中的信号槽。 2、特点: (1)、一个信号可以与多个插槽函数绑定; (2)、一个信号与多个插槽函数绑定时,插槽函数可以设置自己被调用的顺序:boost::signals2::at_front、boost::signals2::at_back; ...

小米的修行之路 3633

boostsignals2

signals2库的核心是signal类,其类摘要如下:第一个模板参数Signature,是一个函数类型,表示可以被signal调用的函数。第二个模板参数Combiner,是一个函数对象,它被称为“合并器”,用来组合所有插槽的调用结果,默认是optional_last_value< R>,它使用optional库返回最后一个被调用的插槽的返回值第三个模板参数是Group是插槽编组的类型,默认使用int来标记组好,也可以改为std::string等,但是一般不用改。

OceanStar的博客 2185

boost::signals2模块实现连接类测试

boost::signals2模块实现连接类测试实现功能C++实现代码 实现功能 boost::signals2模块实现连接类测试 C++实现代码 #include <boost/signals2.hpp> #define BOOST_TEST_MODULE connection_test #include <boost/test/included/unit_test.hpp> namespace bs2 = boost::signals2; typedef bs2::signal&

希望我的博客,能帮上你解决学习中工作中所遇到的问题 499

boost | 函数与回调(三)signals2

目录 一、signal类 二、基本用法 1.成员函数 2.返回值 3.使用组号 4.合并器 (1)使用signal默认构造函数 (2)实例化合并器 5.管理信号连接 (1)使用connection对象管理信号连接 (2)使用scope_connection对象管理信号连接 (3)使⽤slot类自动管理连接 三、线程安全 四、与function对比 在signals2库中,观察者模式被称为信号/插槽(signals/slots)机制,它是⼀种函数回调机制,⼀个信号...

该用户还没想到好的昵称的博客 2863

boost::signals2的介绍及应用(信号与插槽)

signals2基于Boost里的另一个库signals实现了线程安全的观察者模式。

TypicalSpider的博客 2098

boost------signals2的使用1(Boost程序库完全开发指南)读书笔记

boost------signals2的使用1(Boost程序库完全开发指南)读书笔记

孤独的糖三角 1万+

boost::signals::signal用法

吃力的讲完boost::signals的ppt,然后接着就是做练习题。通过讲ppt,发现有一句话说的真好:你自己知道是一回事,你能给别人讲明白又是另外一回事。真的有些东西你自己理解,但是用语言去很难表达,是不是用语言难以表达暴露出自己对所理解的东西不是真正的理解?。。。。orz,不过讲完ppt之后,真的对boost::singals的理解又加深一层。好了废话不多说了,现在来看两个习题(ppt的内容

yanziguilai的专栏 3569

Boost::signals2

signals2 基于Boost里的另一个库signals,实现了线程安全的观察者模式。它是一种函数回调机制,当一个信号关联了多个槽时,信号发出,这些槽将会被调用。

码上看世界 2084

Boost之事件处理Boost.Signals

20130811 wcdj 很多开发者在听到术语'事件处理'时就会想到GUI:点击一下某个按钮,相关联的功能就会被执行。 点击本身就是事件,而功能就是相对应的事件处理器。这一模式的使用当然不仅限于GUI。 一般情况下,任意对象都可以调用基于特定事件的专门函数。 本章所介绍的 Boost.Signals 库提供了一个简单的方法在 C++ 中应用这一模式。 严格来说,Boost.Func

delphiwcdj的专栏 2749

Boost库——signals2用法总结

signals2signals的区别:            signalsBoost库中另一个信号/插槽库,实际上signals2的实现是基于signals的。signals2signals最大的区别是具有线程安全,能够用于多线程环境,而且不需要编译就可以使用。signals2在结构、接口、设计原理等许多方面都模仿了signals,但也有一些很多变化,例如默认信号调用返回是一

程序人生 6956

Boost::signals2 类QT的信号槽实现机制

signals2 基于Boost里的另一个库signals,实现了线程安全的观察者模式。它是一种函数回调机制,当一个信号关联了多个槽时,信号发出,这些槽将会被调用。 其实Qt也提供了它自己的信号和槽机制,那个是非常的灵活和好用的,但是它依赖于Qt的框架,所以退而求其次,选择了Boost提供了signals2; signals2库位于命名空间boost::signals2中,为了使用它,需要包含头文件<boost/signals2.hpp>; 文章目录 信号(Signal) ..

sway913的博客 1870

Boost.Signals2教程

本教程并非设计为线性阅读。其顶级结构大致将库中的不同概念分开(例如,调用多个槽、向槽传递值和从槽返回值的处理),在每个概念中,首先介绍基本思想,然后描述库的更复杂用法。每个部分标记为 初学者、中级 或 高级,以帮助读者导航。初学者 部分包含所有库用户都应了解的信息;仅阅读初学者部分即可很好地使用 Signals2 库。中级 部分在初学者部分的基础上,介绍库的稍复杂用法。最后,高级 部分详细描述 Signals2 库的非常高级用法,通常需要扎实掌握初学者和中级主题;大多数用户无需阅读高级部分。以下示例使用信号

Actiman 123

Signals-The Boost C++ Libraries

Signals-The Boost C++ Libraries 本文翻译自Signals

ccf19881030的专栏 694

Boost.Signals vs libsigc++

这是一篇关于两个著名的C++ signal-slot库 Boost.Signals 和 libsigc++ 的比较文章。Boost.Signals是著名的Boost库的一部分;libsigc++则被gtk+/gnome的官方C++版本gtkmm/gnomemm所使用。这篇文章的原始位置在:http://www.3sinc.com/opensource/boost.bind-vs-sigc2.htm

又起沙尘暴 5243

BOOST::Signals2 学习小游戏—— 星座加油站

利用win32控制台程序和boost::signals2库,也能写出有意思的演示小游戏。

zhouchuan15的专栏 1796

boost::signals2模块thread_safe_signals 库替代线程模型的基本测试

boost::signals2模块thread_safe_signals 库替代线程模型的基本测试实现功能C++实现代码 实现功能 boost::signals2模块thread_safe_signals 库替代线程模型的基本测试 C++实现代码 #include <boost/signals2.hpp> #define BOOST_TEST_MODULE threading_models_test #include <boost/test/included/unit_test.hpp&g

希望我的博客,能帮上你解决学习中工作中所遇到的问题 538

Boostsignals测试

测试Boost库信号槽传参,在connect时必须使用占位符,确认传递参数个数 BOOST_STATIC_CONSTEXPR boost::arg<1> _1; BOOST_STATIC_CONSTEXPR boost::arg<2> _2; BOOST_STATIC_CONSTEXPR boost::arg<3> _3; BOOST_STATIC_CONSTEXPR boost::arg<4> _4; BOOST_STATIC_CONSTEXPR bo.

涟漪、的博客 4756

boost::signals2::signal_type相关的测试程序

boost::signals2::signal_type相关的测试程序实现功能C++实现代码 实现功能 boost::signals2::signal_type相关的测试程序 C++实现代码 #include <boost/signals2.hpp> #define BOOST_TEST_MODULE signal_type_test #include <boost/test/included/unit_test.hpp> namespace bs2 = boost::signals

希望我的博客,能帮上你解决学习中工作中所遇到的问题 578
上一篇: MS C、STL、MFC对Windows Mobile开发的支持
下一篇: 最简单的std::find例子
happykid
博客等级 码龄23年 5粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值