【问题标题】:Is it possible to add some condition to `boost::signal`是否可以向`boost::signal`添加一些条件
【发布时间】:2014-06-10 07:57:59
【问题描述】:

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

我不想在发射期间检查条件,因为它会在很多地方发射。我也不想检查插槽中的条件,因为它不应该知道该条件。

【问题讨论】:

    标签: c++ boost boost-signals


    【解决方案1】:

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

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

    然后你调用emitSignal()而不是直接发出信号。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-06-07
        • 1970-01-01
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-22
        • 2016-05-24
        相关资源
        最近更新 更多