https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71658
Bug ID: 71658 Summary: User-defined conversion operator from a wrapper class to the wrapped type does not compile. Product: gcc Version: 4.8.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ulrichmutze at gmx dot de Target Milestone: --- Created attachment 38769 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38769&action=edit This single self-contained source file should compile according to what the standard sys about user-defined conversion operators. It doesn't. Please see the heading comment section of the attached self-contained source file main.cpp. I hope that it contains all info you are looking for. John Maddock from the boost project to whom I reported the problem in a form closer to the my actual application, and assuming that it would be caused by boost/multiprecision classes, found the problem 'perplexing' and came to the conclusion that it has probably not to do with multiprecision. So, I simplified the the problem to the lowest level which is presented here.