I can't reproduce the problem with gcc. Although gcc is not 100% standards-compliant in that it allows you to do a few illegal things, I like using it as my personal "correctness" test (which allows for an occasional false positive).If gcc complains about something it is certainly wrong. If gcc does not bark, it is 80% certain standard.

I'm not sure why it works here, but my guess is the compiler concatenates the strings before evaluating macros?

Anyway, this is another good example how obnoxious, abusive, and misleading macros are.Byo's example _("First " "Second") indeed resolves to wxGetTranslation(_T("First " "Second")) which resolves to wxGetTranslation(L"First " "Second")), respectively.Also note that this only works at all because _T is defined earlier than _ (remember there is only a single preprocessor pass). In other words, the functionality depends on the order in which include files are read...

Logged

"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."