std::bind() error: cannot determine which instance of overloaded function "boost::asio::io_service::run" is intended
<p>While trying to compile this in Visual C++ 2015</p>

<pre><code>  auto worker = std::bind(&amp;boost::asio::io_service::run, &amp;(this-&gt;service));
</code></pre>

<p>I'm getting errors:</p>

<pre><code>error C2783: 'std::_Binder&lt;_Ret,_Fx,_Types...&gt; std::bind(_Fx &amp;&amp;,_Types &amp;&amp;...)': could not deduce template argument for '_Ret'
note: see declaration of 'std::bind'

error C2783: 'std::_Binder&lt;_Ret,_Fx,_Types...&gt; std::bind(_Fx &amp;&amp;,_Types &amp;&amp;...)': could not deduce template argument for '_Fx'
note: see declaration of 'std::bind'

error C2783: 'std::_Binder&lt;std::_Unforced,_Fx,_Types...&gt; std::bind(_Fx &amp;&amp;,_Types &amp;&amp;...)': could not deduce template argument for '_Fx'
note: see declaration of 'std::bind'
</code></pre>

<p>Additionally, IntelliSense complains with:</p>

<pre><code>cannot determine which instance of overloaded function "boost::asio::io_service::run" is intended
</code></pre>

<p>I see that there are 2 overloads of <code>boost::asio::io_service::run</code>. But how can I specify which one to use?</p>

<p>With <code>boost::bind</code> the code compiles just fine:</p>

<pre><code>  auto worker = boost::bind(&amp;boost::asio::io_service::run, &amp;(this-&gt;service));
</code></pre>