id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 11922,Rev f4a61d breaks introduces ambiguity.,layus,John Maddock,"The following code used to work before 1.60. {{{ #include #include typedef boost::multiprecision::cpp_int mp_int; class Int { public: Int(const mp_int& i) {}; Int(const Int& i) = delete; }; int main() { mp_int i(10); std::shared_ptr p = std::make_shared(i + 10); return 0; } }}} 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"") {{{ commit f4a61d5f47c4b03e2c0d3f2bed55fe8f7bb07620 Author: jzmaddock Date: Thu Mar 12 17:55:13 2015 +0000 Add explicit conversion operators and tests to expression templates. }}} I must admit I am not even sure why there is ambiguity, but since the only way to call Int(const Int&) is to call Int(const mp_int&) first to get an Int there should be no ambiguity for the compiler here. ",Bugs,closed,To Be Determined,multiprecision,Boost 1.60.0,Regression,fixed,,jzmaddock