问题标签 [boost-signals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - boost::signal 中的程序崩溃dtor
我有一个非常复杂的软件,我遇到了随机崩溃(主要是在发布模式下,我无法轻松构建 SSCCE),并在boost::signal1<event>
.
该信号对象由多个对象使用(订阅/取消订阅)并在多线程软件中使用(我的意思是多线程发送和多线程接收)。
我听说这boost::signal2
是线程安全的,我想知道关于症状描述,你是否和我有同样的感觉?我需要使用Signal2
欢迎评论、感受和反馈,因为我开始为 signal2 重建提升!
c++ - 如何复制升压信号的插槽
有没有办法让插槽连接到信号?即,我想将信号的槽从一个类的一个实例复制到另一个
我的课堂上有一个信号并遇到以下错误。这可能是因为这个类在 STL 容器中使用。
所以,我决定放置一个复制构造函数并将信号连接到参数信号的插槽,然后我得到以下错误,
如果我删除复制构造函数参数的 const 限定符,我会得到另一个错误..
这是我正在处理的示例代码
猜测链接信号将不起作用,因为我不确定复制构造函数参数对象是否会存活“this”对象
c++ - 具有不同签名的函数对象参数的函数
我尝试使用具有不同签名的 boost::function 重载一个函数,但它不起作用。我尝试使用template<Signature> Connection *connect(boost::function<Signature> f)
which 也失败了,因为 boost::bind 不会以这种方式隐式转换
我想要做的正是 boost::signals 所做的。Boost 信号可以同时接受不带参数的函数对象和带 N 个参数的函数对象
我想知道如何在一个函数中接受这两种类型的函数对象。
c++ - 增强信号槽泛化
我正在寻找一种方法来实现这样的事情,使用 boost
这怎么可能实现。信号复制是不可能的!?
c++ - 使用没有可变参数模板的升压信号
由于缺乏对可变参数模板的充分支持,我很惊讶地发现 Boost.Signals2 不能与英特尔 C++ 编译器一起使用。所以我的问题是——没有它们我该怎么办?有办法吗?
c++ - 是否可以向`boost::signal`添加一些条件
是否可以在boost::signal
. 它可能会得到一些布尔函数,当我发出信号时,它应该检查函数是否返回 true 然后发出。
我不想在发射期间检查条件,因为它在很多地方发射。我也不想检查插槽中的条件,因为它不应该知道该条件。
c++ - 有没有办法用 boost::signals2 “控制”插槽执行?
我正在使用 boost::signals2 开发 NotificationCenter。
我必须将它集成到类似 Reactor 的系统中,并且我有一个问题……如果订阅信号的处理程序太多,我希望能够停止订阅者处理程序的执行并将流量控制返回给 Reactor,以避免无响应时间太长,稍后恢复执行...
有什么方法可以实现吗?
我一直在研究组合器……但我认为这不是正确的方法……
欢迎任何建议
提前致谢。
c++ - 将 boost::signals2::trackable 与 lambda 一起使用
我正在使用这样的模式,C++11:
FooViewController 可能在doWork
完成之前解构,导致崩溃。看着 boost::signals2,我正在考虑使用boost::signals2::trackable
,它非常适合我的单线程用途,好处是我不必直接持有和管理我的连接,但是我不确定如何获得这样的使用 lambda 的解决方案。
这是一个可用的 lambda 免费版本:
两个目标:
1--我想做类似的事情:
test
在被拆除后不会调用 lambda 。
2--我不想直接管理.connect
.
c++ - c++ 可变参数模板中的编译器错误
我刚刚想出了一个想法来构建一个简单的信号库实现,比如 boost::signals。
我为此编写了一个简单的模板,但是在尝试调用 oparator() 以触发所有回调时出现错误:
任何想法此编译器错误的原因是什么(错误 C2062 类型“int”意外)
boost - 如何将 boost_signalsConfig.cmake 添加到我的 CMAKE_PREFIX_PATH
我在 Ubuntu 16.04 上运行 ROS-kinetic,我正在尝试在 catkin 工作区中构建两个包(lanelet2和mrt_cmake_modules)
当我在工作区中运行 Catkin_make 时,我收到以下错误:
我确实安装了 boost 库(版本 1.58):
我似乎无法在我的系统中找到任何一个boost_signalsConfig.cmake
或boost_signals-config.cmake
任何地方,因此我无法将路径添加到CMAKE_PREFIX_PATH
.
有人可以告诉我如何获取这些 .cmake 文件,以便我可以将它们添加到我的 .cmake 文件中CMAK_PREFIX_PATH
吗?