On 7 November 2011 00:37, Joseph S. Myers wrote: > On Mon, 7 Nov 2011, Jonathan Wakely wrote: > >> On 6 November 2011 23:53, Joseph S. Myers wrote: >> > >> > As with stdnoreturn.h, the contents of stdalign.h are conditioned out >> > for C++; I'll leave it to C++ people to work out what's most useful >> > there if something nonempty is wanted (stdnoreturn.h is empty for C++, >> > stdbool.h defines _Bool and bool to bool, true to true etc.). >> >> Thanks Joseph, that will allow use to provide <cstdalign> in libstdc++. >> >> By my reading of the C++11 standard, the __alignas_is_defined macro >> should still be defined in C++, and alignof isn't mentioned, was that >> a late addition to C1X? > > The move from alignof as a keyword to _Alignof as a keyword with alignof > as a macro in stdalign.h was done at the London meeting (March 2011) in > response to comment US20. stdnoreturn.h was also added at that meeting.
Thanks for the info. I think treating alignof identically to alignas for C++ makes sense then - the __alignof_is_defined macro is in the reserved namespace so it's OK for a conforming C++11 implementation to define it. > It looks like what GCC defines in stdbool.h for C++ goes beyond what C++11 > says it should ("The header <cstdbool> and the header <stdbool.h> shall > not define macros named bool, true, or false.") stdint.h is another case > needing adjustment for C++11, though there what I've suggested is that GCC > should predefine __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS in C++11 > mode as the best way to work with all implementations of that header that > follow what C99 footnotes suggest. Indeed - I was just noticing that the libstdc++ testsuite doesn't check that stdbool.h doesn't define those macros.