@@ -29500,15 +29500,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
@@ -29518,6 +29509,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
@@ -29528,15 +29528,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)
@@ -29546,6 +29537,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
@@ -29561,6 +29561,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}.
@@ -29662,13 +29669,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
Consolidated most patches into one for easier review and added documentation for all missing built-in traits. Ok for trunk? -- >8 -- This patch arranges pre-existing built-in traits alphabetically for better codebase consistency and easier future integration of changes. gcc/ChangeLog: * doc/extend.texi (Type Traits): Arrange pre-existing built-in traits alphabetically. Signed-off-by: Ken Matsui <kmatsui@gcc.gnu.org> --- gcc/doc/extend.texi | 50 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-)