Boost C++ Libraries: Ticket #11922: Rev f4a61d breaks introduces ambiguity. https://svn.boost.org/trac10/ticket/11922 <p> The following code used to work before 1.60. </p> <pre class="wiki">#include &lt;memory&gt; #include &lt;boost/multiprecision/cpp_int.hpp&gt; typedef boost::multiprecision::cpp_int mp_int; class Int { public: Int(const mp_int&amp; i) {}; Int(const Int&amp; i) = delete; }; int main() { mp_int i(10); std::shared_ptr&lt;Int&gt; p = std::make_shared&lt;Int&gt;(i + 10); return 0; } </pre><p> But the changes introduced by the following commit, merged into boost-1.60.0, breaks it. The compiler cannot pick the constructor because there is some ambiguity. (i.e. "call of overloaded ‘Int(...)’ is ambiguous") </p> <pre class="wiki">commit f4a61d5f47c4b03e2c0d3f2bed55fe8f7bb07620 Author: jzmaddock &lt;XXX&gt; Date: Thu Mar 12 17:55:13 2015 +0000 Add explicit conversion operators and tests to expression templates. </pre><p> I must admit I am not even sure why there is ambiguity, but since the only way to call Int(const Int&amp;) is to call Int(const mp_int&amp;) first to get an Int there should be no ambiguity for the compiler here. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11922 Trac 1.4.3 John Maddock Thu, 21 Jan 2016 10:40:28 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/11922#comment:1 https://svn.boost.org/trac10/ticket/11922#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> The ambiguity exists because there are 2 conversion paths: </p> <p> expression template -&gt; number -&gt; Int expression template -&gt; Int -&gt; Int copy constructor </p> <p> However the error message is particularly unhelpful :( </p> <p> I believe I have this fixed in <a class="ext-link" href="https://github.com/boostorg/multiprecision/commit/df773c7ab293118eb29eac52067a0466431c9a96"><span class="icon">​</span>https://github.com/boostorg/multiprecision/commit/df773c7ab293118eb29eac52067a0466431c9a96</a> </p> Ticket