【问题标题】:Passing boost::bind parameters as arguments传递 boost::bind 参数作为参数
【发布时间】:2016-05-24 10:18:17
【问题描述】:

我编写了运行良好的 somo 代码。但是我想用另一种方式写它,我不知道该怎么做。 这就是我所做的:

class A {
public:
    void doAction();
}

typedef boost::signals2::signal<void(bool)> OnTriggered;
typedef OnTriggered::slot_type OnTriggeredSlot;

class B {
public:
    void add(const OnTriggeredSlot &iSlot);
}

void A::doAction() {
    B b;
    b.add(boost::bind(&A::doAction, this, _1));
}

这是我想做的:

void A::doAction() {
    B b;
    b.add(&A::doAction, this);
}

不知道怎么修改“B”类的“add”方法。

【问题讨论】:

    标签: c++ boost boost-bind


    【解决方案1】:

    我终于找到了解决办法:

        class B
        {
        public:
            template<class SlotClass> boost::signals2::connection add(SlotClass * obj, void(SlotClass::*func)(bool))
                {
                    return m_sig.connect(boost::bind(func, obj, _1));
                }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多