title: Pointer to the method / passing this pointer / boost::bind
body: <p>I'm wondering how "this" pointer is being passed to the methods from the class.
  Let's see this snippet of code:</p>
  
  <pre><code>class CTest
  {
  public:
      CTest(int n_) : n(n_) {}
      void method()
      {
          std::cout &lt;&lt; n &lt;&lt; std::endl;
      }
  private:
      int n;
  };
  
  int main()
  {
      CTest t1(100);
  
      boost::bind(&amp;CTest::method, &amp;t1)(); //100
      boost::bind(&amp;CTest::method, _1)(&amp;t1); //100
      Test::method(&amp;t1); //no matching function for call to ‘CTest::method(CTest*)’
  
      return 0;
  }
  </code></pre>
  
  <p>Assuming the bind works just like a function object, it passes this/object pointer somehow. If I want to do it explicitly I get an compilation error.</p>
  
  <p>How does it work in fact?</p>