5
Я играл с boost::signals2
для обучения в последнее время, и мне было интересно, могу ли я подключать сигналы к нестационарным слотам, расположенным внутри класса (как я мог бы в Qt). Рассмотрим следующий пример:boost :: signal2 slot как нестатический член функции?
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
?