如何使用boost :: proto将插槽连接到信号

时间:2019-06-22 15:34:49

标签: c++ boost 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感到困惑,甚至不知道从哪里开始。目的是在保持信号成员私有的同时,提供一种统一的插槽连接方式,而不必每次都编写新的连接功能。

0 个答案:

没有答案