有没有办法将升压信号直接连接到另一个信号?

2023-12-22

我想知道是否有更好的方法将一类的升压信号直接连接到另一类的信号?

例如想象一个门面类 https://stackoverflow.com/questions/249581/explain-facade-pattern-with-c-example有一群提供自己信号的成员。现在假设外观想要公开这些信号。我通常最终会编写样板方法,然后将其连接为信号处理程序。

using namespace boost::signal;

class A
{
public:
  A(){};
  virtual ~A(){};

  signal<void()> signalA;
};

class B
{
public:
  B(){};
  virtual ~B(){};

  signal<void()> signalB;
};

class Facade
{
private:
  A& a;
  B& b;

public:
  Facade(A& refA, B& refB) 
  : a(refA), b(refB) 
  {
    // connect A's signal to facadeSignalA
    a.signalA.connect(boost::bind(&Facade::forwardedSignalA, this));
    // connect B's signal to facadeSignalB
    b.signalB.connect(boost::bind(&Facade::forwardedSignalB, this));
  }
  virtual ~Facade() {};

  // user visible signals
  signal<void()> facadeSignalA;
  signal<void()> facadeSignalB;

private:
  // ugly boilerplate code used to forward signals
  void forwardedSignalA()
  {
    facadeSignalA();
  }
  void forwardedSignalB()
  {
    facadeSignalB();
  }
};

现在这不是很优雅,并且在一段时间后变得非常乏味。有没有一种方法可以做到这一点而不必编写这些转发方法?


是的,事实证明您可以直接“链接”信号。请参见这个线程 https://groups.google.com/forum/#!topic/boost-list/So4i8JXneJ0。它没有记录,但似乎是一个非常有用的功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法将升压信号直接连接到另一个信号? 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 如何使用 DataBinder.Eval 在 gridview 中选中复选框

    我正在尝试检查一个复选框 基本上在我的数据库中该值是否为 1 或 0 一个叫做Active bit not null 我可以将值传递给gridview 但现在我试图检查该位是否为1 或者如果该位为0则不检查但它不起作用 它只是显示未检查但该
  • 自动保存您正在处理的文件?

    可以让 Eclipse 自动保存您已打开和正在处理的文件 并且这样做不会触发任何与保存挂钩的操作吗 Windows gt 首选项 gt 常规 gt 工作区 gt 工作区保存间隔 以分钟为单位 中的选项是否执行此操作 您可以使用智能保存 它是
  • 我可以在 IPAD 中运行 html/Javascript 文件吗?

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个文件夹 其中有一个 html 文件夹和 javascript 文件 我可以在没有互联网的情况下在 ipad 中仅从文件系统运行该 html 页
  • MVC3 AntiForgeryToken 问题

    我正在尝试为我的 MVC3 应用程序实现 AntiForgeryToken 设置 FormAuthentication cookie 后 我遇到 AntiForgeryToken 问题 这是一个解释我的问题的简单示例 我的家庭控制器具有以下
  • apache tomcat catalina 作为 CORS 过滤器的 Maven 依赖项

    我在我的网络应用程序中使用 org apache catalina filters CorsFilter 所以我指定了maven依赖
  • 获取数组类型记录字段的长度

    我正在编写一个包装器用于与外部二进制 API 进行通信 API 使用 PDU 打包二进制记录 进行通信 字符串是 AnsiChar 数组并且以零结尾 type TSomePDU packed record StringField array
  • 如何在java Hibernate中更新主键

    我正在研究 Mvc 架构 我有 pojo 对象 我想更改主键 请你帮帮我 主键是 varchar 前任 Users users usersDao load mark 您永远不应该更改主键的值 主键定义了对象的身份 如果主键已更改 Hiber
  • PHP SOAP客户端调用带参数函数

    我创建了一个 SOAP 客户端 如下所示 client new SoapClient file wsdl 然后当我想调用API函数时 client gt Authenticate user password 我收到以下错误 格式化程序在尝试
  • 如何从 QuickBook(.qbw) 文件中查询一些数据?

    情况 我是 QuickBooks 世界的新手 我有一个 qbw文件 gt 公司名称 qbw 这是一个巨大的文件 几乎包含了有关我公司的所有信息 我要查询some该文件中的数据 不是全部 而是一些 假设我只想查询inventory repor
  • 球体上密度最高的位置

    我在球体表面有很多点 如何计算具有最大点密度的球体的面积 点 我需要非常快地完成这件事 例如 如果这是一个正方形 我想我可以创建一个网格 然后让点投票网格的哪一部分是最好的 我尝试将这些点转换为球面坐标 然后制作网格 这两种方法都效果不佳
  • 媒体播放器/录音机(声子)

    我想开发一个媒体播放器 录音机 主要目标平台是Windows 支持其他操作系统就更好了 但这不是一个高优先级 它应该能够播放 wav mp3 avi 等格式 它还应该能够录制音频 麦克风 和视频 网络摄像头或采集卡 由于我对 QT 和 C
  • 嵌入式软件 Misra 标准

    我需要使大量代码符合 MISRA 要求 第一个问题 有人可以给一个估计用于根据经验传递编写良好的嵌入式系统代码 我知道 写得好 的定义不明确且模糊 所以我要求进行原始估计 第二个问题 对可定制 即允许抑制特定警告 并在自动构建环境 即命令行
  • iOS:UIDatePicker“删除”最小和最大日期之外的日期

    我编写了一个简单的 UIDatePicker 其中包含最小和最大日期 我希望日期选择器不显示不可用的日期 而不仅仅是禁用它们 实际 您可以滚动浏览所有不可用的日期 但是当您停留在不可用的日期时 日期选择器会滚动到最接近的可用日期 这很好 但
  • 我的函数输入周围的这个框是什么?

    每当我编写自动完成的函数调用并开始输入内容时 就会在输入周围绘制一个黑色矩形 如下所示 为什么 eclipse 会这样做以及如何将其关闭 我查看了不同的编辑器设置 但没有找到任何描述此行为的内容 This is called place h
  • 这句话是什么意思? printf("[%.*s] ", (int) 长度[i],

    我正在阅读此页http dev mysql com doc refman 5 0 en mysql fetch row html http dev mysql com doc refman 5 0 en mysql fetch row ht
  • 为什么 git 无法在 Visual Studio Code 中运行?

    我已经在我的项目中安装了哈士奇 然后我跑了precommit命令 现在 当我运行git命令 它不起作用 而是问我你想如何打开该文件 所以 我使用删除了哈士奇npm prune然后从中删除 hooks 文件夹 git项目目录 但仍然没有帮助
  • 有没有办法调整 UITabBar 按钮项目的宽度以适应屏幕上超过 5 个按钮?

    我的按钮似乎被拉长了 尤其是在横向方向上 我无法在 UITabBar UITabBarViewController 或 UITabBarItem 本身上找到可调整的属性 当然 一个答案是购买 iPad 但这并不能解决对手机的需求 例如 考虑
  • 如何将事件附加到表单的 onSubmit 事件并链接早期附加的方法?

    我的申请有数百页 现在我必须附加一个事件disablePage on onSubmit的形式 我不想翻到每一页并写下
  • 疯狂中的 CheckoutController#edit 在哪里?

    我需要玩editCheckoutController 的操作 我在服务器日志中看到它 我在文档 http edgeguides spreecommerce com checkout html但我在 gem 的代码中找不到它 魔力在哪里 狂欢
  • 有没有办法将升压信号直接连接到另一个信号?

    我想知道是否有更好的方法将一类的升压信号直接连接到另一类的信号 例如想象一个门面类 https stackoverflow com questions 249581 explain facade pattern with c example