5
最近、学習目的でboost::signals2
と遊んでいましたが、私はQtのように、の非静的スロットに信号を接続できるかどうか疑問に思っていました。次のことを考えてみましょう:boost :: signals2スロットを非静的関数メンバーとして使用しますか?
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
でこれを行う方法はありますか?ただ、