C++ 如何使用boost::proto将插槽连接到信号
我正在尝试创建一种嵌入式语言来连接插槽和成员信号。我已经看过boost网站上的示例和教程,但我仍然完全迷茫,甚至不确定我想做的是否可行 例如,如果我有这样一个类,定义了一个proto-terminal: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;
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);