是否可以添加一些条件' boost::signal '

Is it possible to add some condition to `boost::signal`

本文关键字:signal boost 条件 添加 是否      更新时间:2023-10-16

是否可以为boost::signal添加一些条件?它可能会得到一些布尔函数,当我发出信号时,它应该检查函数是否返回true,然后发出。

我不想在发射时检查条件,因为它被发射到很多地方。我也不想检查槽中的条件因为它不应该知道那个条件

如果您需要以这种方式从许多地方发出信号,我会为它添加一个方法:

void emitSignal()
{
   if( /* condition */ ) {
       _signal();
   }
}

则调用emitSignal()而不是直接发射信号

我将其设计为适配器。这个适配器有一个用于原始信号的插槽,检查条件,如果测试通过,则发出第二个信号。