【发布时间】:2012-04-17 15:20:51
【问题描述】:
我最近一直在玩 boost::signals2 以用于学习目的,我想知道是否可以将信号连接到位于类中的 非静态 插槽(就像我在 Qt 中一样) .考虑以下几点:
class Worker {
typedef boost::signals2::signal<void (const std::string &)> SendMessage;
public:
typedef SendMessage::slot_type SendMessageSlotType;
boost::signals2::connection connect(const SendMessageSlotType &slot) {
return send_message.connect(slot);
}
private:
SendMessage send_message;
};
class Controller {
public:
Controller() {
worker.connect(&Controller::print);
}
private:
static void print(const std::string &message) {
std::cout << message << std::endl;
}
Worker worker;
};
现在我想让Controller::print 成为一个非静态成员。以boost::thread 为例,这可以使用boost::bind 来实现;有没有办法用boost::signals2 做到这一点?
【问题讨论】:
标签: c++ boost non-static boost-signals2