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

C++ 如何使用boost::proto将插槽连接到信号,c++,boost,boost-proto,C++,Boost,Boost Proto,我正在尝试创建一种嵌入式语言来连接插槽和成员信号。我已经看过boost网站上的示例和教程,但我仍然完全迷茫,甚至不确定我想做的是否可行 例如,如果我有这样一个类,定义了一个proto-terminal: class test { boost::signals2::signal<void()> _signal; }; struct signal_tag { }; proto::terminal<test_tag>::type const signal_term;

我正在尝试创建一种嵌入式语言来连接插槽和成员信号。我已经看过boost网站上的示例和教程,但我仍然完全迷茫,甚至不确定我想做的是否可行

例如,如果我有这样一个类,定义了一个proto-terminal:

class test {
    boost::signals2::signal<void()> _signal;
};

struct signal_tag { };

proto::terminal<test_tag>::type const signal_term;
或者,如果不可能:

(t > signal_term)(some_slot);

计算表达式的结果应该是信号的
connect()
函数返回的连接。我希望我有更好的代码示例,但我被boost::proto弄糊涂了,甚至不知道从哪里开始。目标是保持信号成员的私有性,同时提供连接插槽的统一方法,而无需每次编写新的连接函数。

无论如何,某些类必须访问测试的私有信号,因此您宁愿声明一个
朋友
,而不是定义
连接
成员函数,某些类必须访问测试的私有信号,所以您更愿意声明一个
友元
,而不是定义
连接
成员函数?
(t > signal_term)(some_slot);