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.

Reply via email to