------- Comment #3 from stvwooddell at embarqmail dot com 2010-02-20 18:13 ------- Scratch that, that's a error from a file that shouldn't even exist. Copied the given code to a clean project and it compiled. So bug, but a miscommunication in that the constructor is being implicitly add so that the original form is trying to pass a anonymous object as a argument to the implicitly added constructor, which is calling the protected typecast operator.
Still, that leaves the issue that the following has two different behaviours when they are logically the same. I'm sure this is just a failure on my part to understand the standard, where is that covered? ptr Ret(new object(*this)); return Ret; return Ret(new object(*this)); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43127