Implement C1X _Alignas, _Alignof, max_align_t, stdalign.h

Joseph S. Myers joseph@codesourcery.com
Mon Nov 7 00:44:00 GMT 2011


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.

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.

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Gcc-patches mailing list