On 26 August 2011 14:09, Paolo Carlini wrote: > On 8/26/11 2:59 PM, Rainer Orth wrote: >> >> Hi Paolo, >> >>>> Ok for mainline if bootstraps pass? >>> >>> Not a comment strictly about this patch, but why we have things like #if >>> __cplusplus>= 199711L anywhere? For sure the library is not supposed to >>> be >>> used together with old C++ front-ends. >> >> I thought about this myself, but at least the overloads are only present >> with __cplusplus>= 199711L. > > I don't understand: isn't __cplusplus now *always* >= 199711L? Or you want > to protect vs the user undefining __cplusplus and then defining it to a > different value?!? I don't have the Standard at hand (in theory I'm in > vacation ;), maybe Marc can help, but I don't think it's legal, is it?
[cpp.predefined]/3: "If any of the pre-defined macro names in this subclause, or the identifier defined, is the subject of a #define or a #undef preprocessing directive, the behavior is undefined."