On 10/24/07, John Gateley <[EMAIL PROTECTED]> wrote: > The situation is this: I have a lot of code that uses a string class > which takes advantage of the pun: the string class has only the > one data member, which means you can do things like printf("%s", obj) > and have the right thing happen (using a different compiler, of course). > Is there any way to use this useful pun with g++?
This is way undefined code really. The class is a non POD since you have a private member. And the C++ standard says it is undefined what happens when you pass a non-POD for a varable arguments function (the reasoning is due to virtual functions and knowning the full size of the struct). Also using %s with anything but a char* is undefined behavior anyways (even if it is a struct that only contains a char* since the ABI could say they are passed differently). -- Pinski