c++ - 如何使用 boost::proto 将插槽连接到信号
问题描述
我正在尝试创建一种嵌入式语言来将插槽连接到成员信号。我已经查看了 boost 网站上的示例和教程,但我仍然完全迷失了,我什至不确定我想做的事情是否可行。
例如,如果我有一个这样的类,并定义了一个原型终端:
class test {
boost::signals2::signal<void()> _signal;
};
struct signal_tag { };
proto::terminal<test_tag>::type const signal_term;
我想知道如何将终端包装在一个表达式中,该表达式允许我_signal
使用如下语法将插槽连接到:
test t();
t > signal_term | some_slot;
或者,如果这是不可能的:
(t > signal_term)(some_slot);
计算表达式的结果应该是信号connect()
函数返回的连接。我希望我有更好的代码示例,但是我对 boost::proto 感到非常困惑,以至于我什至不知道从哪里开始。目标是保持信号成员的私密性,同时提供一种连接插槽的统一方式,而无需每次都编写新的连接函数。
解决方案
推荐阅读
- javascript - 创建一个函数来执行一个小的重复任务是一种反模式吗?
- java - 处理来自 RestFul 网络服务的 Json 数组并传递给soap
- snowflake-cloud-data-platform - 基于 Select 创建 Snowflake s3 阶段
- javascript - 确定点击的最少时间 - Javascript
- java - ImageViews 在选择它们的“兄弟”ImageViews 之一时改变颜色
- python - 谷歌 API 权限:创建;自定义消息未出现
- javascript - 如何使用 ReactJS 中组件内的数组中的 Fontawesome Elements?
- javascript - 如何让我的 ID 悬停在 id 所引用的 div 上
- c# - 如何在 c# 中使用 PropertyInfo 获取属性值
- javascript - 将视图袋分配给 JQuery 函数中的变量