title: boost::signals2 slot as a non-static function member?
body: <p>I have been playing around with <code>boost::signals2</code> for learning purposes lately, and I was wondering whether I could connect signals to a <strong>non-static</strong> slot located within a class (like I could in Qt). Consider the following:</p>
  
  <pre><code>class Worker {
      typedef boost::signals2::signal&lt;void (const std::string &amp;)&gt; SendMessage;
  public:
      typedef SendMessage::slot_type SendMessageSlotType;
      boost::signals2::connection connect(const SendMessageSlotType &amp;slot) {
          return send_message.connect(slot);
      }
  private:
      SendMessage send_message;
  };
  
  class Controller {
  public:
      Controller() {
          worker.connect(&amp;Controller::print);
      }
  private:
      static void print(const std::string &amp;message) {
          std::cout &lt;&lt; message &lt;&lt; std::endl;
      }
  
      Worker worker;
  };
  </code></pre>
  
  <p>Now I would want to make <code>Controller::print</code> a non-static member. With <code>boost::thread</code> for example, this can be achieved using <code>boost::bind</code>; is there any way to do this with <code>boost::signals2</code>?</p>