------- Comment #18 from mrsam at courier-mta dot com  2009-06-15 21:53 -------
Yes, the patch does add a new data member to the class. I see that this would
fall under item #8 under "prohibited changes", although, as I said, AFAIK it
won't actually break binary compatibility with existing applications, for the
reasons I outlined.

I think I see a way of doing this without changing the existing std::messages
class, but it's ugly. Basically -- I think I can subclass std::messages and put
the new data member into the subclass (__gnu_internal::messages?), then
override all the virtual methods and find all places in libstdc++ that
instantiate std::messages, and change them to instantiate
__gnu_internal::messages.

I was able to find two places in libstdc++ that instantiate std::messages,
which would be changed to instantiate __gnu_internal::messages instead. If I
missed any, the results won't be catastrophic -- I think anything that falls
through the cracks would just fall back to using the existing implementation,
and that can always be fixed up later.

This patch would be bigger and uglier (and I'd still like my first one better),
but before I try to write it up, is there any reason, that I'm missing, why
this approach wouldn't work?

One other detail -- anyone know which version of glibc first had libintl that
implemented dgettext()?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13631

Reply via email to