Hi Ken, This patch series LGTM, thanks for these documentation improvements.
On Fri, 1 Mar 2024, Ken Matsui wrote: > This patch sorts built-in traits alphabetically for better codebase > consistency and easier future integration of changes. > > gcc/ChangeLog: > > * doc/extend.texi (Type Traits): Sort built-in traits > alphabetically. > > Signed-off-by: Ken Matsui <kmat...@gcc.gnu.org> > --- > gcc/doc/extend.texi | 62 ++++++++++++++++++++++----------------------- > 1 file changed, 31 insertions(+), 31 deletions(-) > > diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi > index f679c81acf2..b13f9d6f934 100644 > --- a/gcc/doc/extend.texi > +++ b/gcc/doc/extend.texi > @@ -29499,15 +29499,6 @@ Requires: @var{type} shall be a complete type, > (possibly cv-qualified) > @code{void}, or an array of unknown bound. > @enddefbuiltin > > -@defbuiltin{bool __has_nothrow_copy (@var{type})} > -If @code{__has_trivial_copy (type)} is @code{true} then the trait is > -@code{true}, else if @var{type} is a cv-qualified class or union type > -with copy constructors that are known not to throw an exception then > -the trait is @code{true}, else it is @code{false}. > -Requires: @var{type} shall be a complete type, (possibly cv-qualified) > -@code{void}, or an array of unknown bound. > -@enddefbuiltin > - > @defbuiltin{bool __has_nothrow_constructor (@var{type})} > If @code{__has_trivial_constructor (type)} is @code{true} then the trait > is @code{true}, else if @var{type} is a cv class or union type (or array > @@ -29517,6 +29508,15 @@ Requires: @var{type} shall be a complete type, > (possibly cv-qualified) > @code{void}, or an array of unknown bound. > @enddefbuiltin > > +@defbuiltin{bool __has_nothrow_copy (@var{type})} > +If @code{__has_trivial_copy (type)} is @code{true} then the trait is > +@code{true}, else if @var{type} is a cv-qualified class or union type > +with copy constructors that are known not to throw an exception then > +the trait is @code{true}, else it is @code{false}. > +Requires: @var{type} shall be a complete type, (possibly cv-qualified) > +@code{void}, or an array of unknown bound. > +@enddefbuiltin > + > @defbuiltin{bool __has_trivial_assign (@var{type})} > If @var{type} is @code{const}- qualified or is a reference type then > the trait is @code{false}. Otherwise if @code{__is_trivial (type)} is > @@ -29527,15 +29527,6 @@ Requires: @var{type} shall be a complete type, > (possibly cv-qualified) > @code{void}, or an array of unknown bound. > @enddefbuiltin > > -@defbuiltin{bool __has_trivial_copy (@var{type})} > -If @code{__is_trivial (type)} is @code{true} or @var{type} is a reference > -type then the trait is @code{true}, else if @var{type} is a cv class > -or union type with a trivial copy constructor ([class.copy]) then the trait > -is @code{true}, else it is @code{false}. Requires: @var{type} shall be > -a complete type, (possibly cv-qualified) @code{void}, or an array of unknown > -bound. > -@enddefbuiltin > - > @defbuiltin{bool __has_trivial_constructor (@var{type})} > If @code{__is_trivial (type)} is @code{true} then the trait is @code{true}, > else if @var{type} is a cv-qualified class or union type (or array thereof) > @@ -29545,6 +29536,15 @@ Requires: @var{type} shall be a complete type, > (possibly cv-qualified) > @code{void}, or an array of unknown bound. > @enddefbuiltin > > +@defbuiltin{bool __has_trivial_copy (@var{type})} > +If @code{__is_trivial (type)} is @code{true} or @var{type} is a reference > +type then the trait is @code{true}, else if @var{type} is a cv class > +or union type with a trivial copy constructor ([class.copy]) then the trait > +is @code{true}, else it is @code{false}. Requires: @var{type} shall be > +a complete type, (possibly cv-qualified) @code{void}, or an array of unknown > +bound. > +@enddefbuiltin > + > @defbuiltin{bool __has_trivial_destructor (@var{type})} > If @code{__is_trivial (type)} is @code{true} or @var{type} is a reference > type > then the trait is @code{true}, else if @var{type} is a cv class or union > @@ -29560,6 +29560,13 @@ If @var{type} is a class type with a virtual > destructor > Requires: If @var{type} is a non-union class type, it shall be a complete > type. > @enddefbuiltin > > +@defbuiltin{bool __integer_pack (@var{length})} > +When used as the pattern of a pack expansion within a template > +definition, expands to a template argument pack containing integers > +from @code{0} to @code{@var{length}-1}. This is provided for > +efficient implementation of @code{std::make_integer_sequence}. > +@enddefbuiltin > + > @defbuiltin{bool __is_abstract (@var{type})} > If @var{type} is an abstract class ([class.abstract]) then the trait > is @code{true}, else it is @code{false}. > @@ -29589,12 +29596,6 @@ If @var{type} is a cv-qualified class type, and not > a union type > ([basic.compound]) the trait is @code{true}, else it is @code{false}. > @enddefbuiltin > > -@c FIXME Commented out for GCC 13, discuss user interface for GCC 14. > -@c @defbuiltin{bool __is_deducible (@var{template}, @var{type})} > -@c If template arguments for @code{template} can be deduced from > -@c @code{type} or obtained from default template arguments. > -@c @enddefbuiltin > - > @defbuiltin{bool __is_empty (@var{type})} > If @code{__is_class (type)} is @code{false} then the trait is @code{false}. > Otherwise @var{type} is considered empty if and only if: @var{type} > @@ -29617,6 +29618,12 @@ is @code{true}, else it is @code{false}. > Requires: If @var{type} is a class type, it shall be a complete type. > @enddefbuiltin > > +@c FIXME Commented out for GCC 13, discuss user interface for GCC 14. > +@c @defbuiltin{bool __is_deducible (@var{template}, @var{type})} > +@c If template arguments for @code{template} can be deduced from > +@c @code{type} or obtained from default template arguments. > +@c @enddefbuiltin > + > @defbuiltin{bool __is_literal_type (@var{type})} > If @var{type} is a literal type ([basic.types]) the trait is > @code{true}, else it is @code{false}. > @@ -29661,13 +29668,6 @@ The underlying type of @var{type}. > Requires: @var{type} shall be an enumeration type ([dcl.enum]). > @enddefbuiltin > > -@defbuiltin{bool __integer_pack (@var{length})} > -When used as the pattern of a pack expansion within a template > -definition, expands to a template argument pack containing integers > -from @code{0} to @code{@var{length}-1}. This is provided for > -efficient implementation of @code{std::make_integer_sequence}. > -@enddefbuiltin > - > > @node C++ Concepts > @section C++ Concepts > -- > 2.44.0 > >