问题标签 [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.

0 投票
1 回答
127 浏览

c++ - boost::signal 中的程序崩溃dtor

我有一个非常复杂的软件,我遇到了随机崩溃(主要是在发布模式下,我无法轻松构建 SSCCE),并在boost::signal1<event>.

该信号对象由多个对象使用(订阅/取消订阅)并在多线程软件中使用(我的意思是多线程发送和多线程接收)。

我听说这boost::signal2是线程安全的,我想知道关于症状描述,你是否和我有同样的感觉?我需要使用Signal2

欢迎评论、感受和反馈,因为我开始为 signal2 重建提升!

0 投票
2 回答
1254 浏览

c++ - 如何复制升压信号的插槽

有没有办法让插槽连接到信号?即,我想将信号的槽从一个类的一个实例复制到另一个

我的课堂上有一个信号并遇到以下错误。这可能是因为这个类在 STL 容器中使用。

所以,我决定放置一个复制构造函数并将信号连接到参数信号的插槽,然后我得到以下错误,

如果我删除复制构造函数参数的 const 限定符,我会得到另一个错误..

这是我正在处理的示例代码

猜测链接信号将不起作用,因为我不确定复制构造函数参数对象是否会存活“this”对象

0 投票
1 回答
75 浏览

c++ - 具有不同签名的函数对象参数的函数

我尝试使用具有不同签名的 boost::function 重载一个函数,但它不起作用。我尝试使用template<Signature> Connection *connect(boost::function<Signature> f)which 也失败了,因为 boost::bind 不会以这种方式隐式转换

我想要做的正是 boost::signals 所做的。Boost 信号可以同时接受不带参数的函数对象和带 N 个参数的函数对象

我想知道如何在一个函数中接受这两种类型的函数对象。

0 投票
1 回答
140 浏览

c++ - 增强信号槽泛化

我正在寻找一种方法来实现这样的事情,使用 boost

这怎么可能实现。信号复制是不可能的!?

0 投票
0 回答
176 浏览

c++ - 使用没有可变参数模板的升压信号

由于缺乏对可变参数模板的充分支持,我很惊讶地发现 Boost.Signals2 不能与英特尔 C++ 编译器一起使用。所以我的问题是——没有它们我该怎么办?有办法吗?

0 投票
2 回答
68 浏览

c++ - 是否可以向`boost::signal`添加一些条件

是否可以在boost::signal. 它可能会得到一些布尔函数,当我发出信号时,它应该检查函数是否返回 true 然后发出。

我不想在发射期间检查条件,因为它在很多地方发射。我也不想检查插槽中的条件,因为它不应该知道该条件。

0 投票
0 回答
37 浏览

c++ - 有没有办法用 boost::signals2 “控制”插槽执行?

我正在使用 boost::signals2 开发 NotificationCenter。

我必须将它集成到类似 Reactor 的系统中,并且我有一个问题……如果订阅信号的处理程序太多,我希望能够停止订阅者处理程序的执行并将流量控制返回给 Reactor,以避免无响应时间太长,稍后恢复执行...

有什么方法可以实现吗?

我一直在研究组合器……但我认为这不是正确的方法……

欢迎任何建议

提前致谢。

0 投票
3 回答
928 浏览

c++ - 将 boost::signals2::trackable 与 lambda 一起使用

我正在使用这样的模式,C++11:

FooViewController 可能在doWork完成之前解构,导致崩溃。看着 boost::signals2,我正在考虑使用boost::signals2::trackable,它非常适合我的单线程用途,好处是我不必直接持有和管理我的连接,但是我不确定如何获得这样的使用 lambda 的解决方案。

这是一个可用的 lambda 免费版本:

两个目标:

1--我想做类似的事情:

test在被拆除后不会调用 lambda 。

2--我不想直接管理.connect.

0 投票
1 回答
300 浏览

c++ - c++ 可变参数模板中的编译器错误

我刚刚想出了一个想法来构建一个简单的信号库实现,比如 boost::signals。

我为此编写了一个简单的模板,但是在尝试调用 oparator() 以触发所有回调时出现错误:

任何想法此编译器错误的原因是什么(错误 C2062 类型“int”意外)

0 投票
1 回答
2164 浏览

boost - 如何将 boost_signalsConfig.cmake 添加到我的 CMAKE_PREFIX_PATH

我在 Ubuntu 16.04 上运行 ROS-kinetic,我正在尝试在 catkin 工作区中构建两个包(lanelet2mrt_cmake_modules

当我在工作区中运行 Catkin_make 时,我收到以下错误:

我确实安装了 boost 库(版本 1.58):

我似乎无法在我的系统中找到任何一个boost_signalsConfig.cmakeboost_signals-config.cmake任何地方,因此我无法将路径添加到CMAKE_PREFIX_PATH.

有人可以告诉我如何获取这些 .cmake 文件,以便我可以将它们添加到我的 .cmake 文件中CMAK_PREFIX_PATH吗?