title: Unable to std::bind member function
body: <p>I've written the following class:</p>
  
  <pre><code>class SomeClass {
  private:
      void test_function(int a, size_t &amp; b, const int &amp; c) {
          b = a + reinterpret_cast&lt;size_t&gt;(&amp;c);
      }
  public:
      SomeClass() {
          int a = 17;
          size_t b = 0;
          int c = 42;
          auto test = std::bind(&amp;SomeClass::test_function, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
          test(a, b, c);
      }
  }
  </code></pre>
  
  <p>On its own, this code looks fine in the IDE (Visual Studio 2015) but when I try to compile it, I get the following errors:</p>
  
  <pre><code>Error   C2893   Failed to specialize function template 'unknown-type std::invoke(_Callable &amp;&amp;,_Types &amp;&amp;...)'    Basic Server    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits  1441    
  Error   C2672   'std::invoke': no matching overloaded function found    Basic Server    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits  1441    
  </code></pre>
  
  <p>What am I doing wrong?</p>
  
  <p>EDIT: I also wrote this version:</p>
  
  <pre><code>class SomeClass {
  private:
      void test_function(int a, size_t &amp; b, const int &amp; c) {
          b = a + reinterpret_cast&lt;size_t&gt;(&amp;c);
      }
  public:
      SomeClass() {
          int a = 17;
          size_t b = 0;
          int c = 42;
          auto test = std::bind(&amp;SomeClass::test_function, a, std::placeholders::_1, std::placeholders::_2);
          test(b, c);
      }
  }
  </code></pre>
  
  <p>I get the exact same errors.</p>