【发布时间】:2014-06-10 07:57:59
【问题描述】:
是否可以在boost::signal 中添加一些条件。它可能会得到一些布尔函数,当我发出信号时,它应该检查函数是否返回 true 然后发出。
我不想在发射期间检查条件,因为它会在很多地方发射。我也不想检查插槽中的条件,因为它不应该知道该条件。
【问题讨论】:
标签: c++ boost boost-signals
是否可以在boost::signal 中添加一些条件。它可能会得到一些布尔函数,当我发出信号时,它应该检查函数是否返回 true 然后发出。
我不想在发射期间检查条件,因为它会在很多地方发射。我也不想检查插槽中的条件,因为它不应该知道该条件。
【问题讨论】:
标签: c++ boost boost-signals
如果您需要以这种方式从许多地方发出信号,我会为它添加一个方法:
void emitSignal()
{
if( /* condition */ ) {
_signal();
}
}
然后你调用emitSignal()而不是直接发出信号。
【讨论】:
我会把它设计成一个适配器。这个适配器有一个用于原始信号的槽,检查条件,如果测试通过则发出第二个信号。
【讨论】: