title: C++11 std::function: Binding a method without a particular instance
body: <p>Continuing <a href="https://stackoverflow.com/q/25488297/878466">this thread</a> I'd like to split it off into another more specific question. I want to bind a function using ChaiScript, and I can do that using <code>std::function</code>, but I can't seem to let <code>std::function</code> know which overload it should use.</p>
  
  <p>Mirroring relevant methods:</p>
  
  <pre><code>class DLLExport Actor
  {
  public:
          Actor(Level* level, const String&amp; name, Actor* parent);
          virtual ~Actor();
  
          void setPosition(const Real&amp; x, const Real&amp; y, const Real&amp; z);
          void setPosition(const Vector3&amp; position);
  };
  </code></pre>
  
  <p>and then I'm trying to bind it like so:</p>
  
  <pre><code>std::function&lt;void(Actor*, Vector3&amp;)&gt; setPos = &amp;Actor::setPosition; // &lt;-- C2440 here.
  m-&gt;add(fun(setPos), "setPosition");
  </code></pre>
  
  <p>What I'm getting is the following error:</p>
  
  <p><code>2&gt;..\..\ScriptingDemo\Binder.cpp(63): error C2440: 'initializing' : cannot convert from 'overloaded-function' to 'std::function&lt;void (Actor *, Vector3 &amp;)&gt;'
  2&gt;          No constructor could take the source type, or constructor overload resolution was ambiguous</code></p>