Message ID | 20241015180524.1857285-1-ppalka@redhat.com |
---|---|
State | New |
Headers | show |
Series | doc: remove outdated C++ Concepts section | expand |
On 10/15/24 2:05 PM, Patrick Palka wrote: > This was added as part of the initial Concepts TS implementation and > reflects an early version of the Concepts TS paper, which is very > different from standard C++20 concepts (and even from more recent > versions of the Concepts TS, support for which we deprecated in GCC 14 > and removed for GCC 15). So there's not much to salvage from this > section besides the __is_same trait documentation which we can > conveniently move to the previous Type Traits section. OK. > gcc/ChangeLog: > > * doc/extend.texi (C++ Concepts): Remove section. Move > __is_same documentation to the previous Type Traits section. > --- > gcc/doc/extend.texi | 44 -------------------------------------------- > 1 file changed, 44 deletions(-) > > diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi > index 302c3299ede..c1ab526e871 100644 > --- a/gcc/doc/extend.texi > +++ b/gcc/doc/extend.texi > @@ -29213,7 +29213,6 @@ Predefined Macros,cpp,The GNU C Preprocessor}). > * C++ Attributes:: Variable, function, and type attributes for C++ only. > * Function Multiversioning:: Declaring multiple function versions. > * Type Traits:: Compiler support for type traits. > -* C++ Concepts:: Improved support for generic programming. > * Deprecated Features:: Things will disappear from G++. > * Backwards Compatibility:: Compatibilities with earlier definitions of C++. > @end menu > @@ -30090,49 +30089,6 @@ 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 > - > -C++ concepts provide much-improved support for generic programming. In > -particular, they allow the specification of constraints on template arguments. > -The constraints are used to extend the usual overloading and partial > -specialization capabilities of the language, allowing generic data structures > -and algorithms to be ``refined'' based on their properties rather than their > -type names. > - > -The following keywords are reserved for concepts. > - > -@table @code > -@kindex assumes > -@item assumes > -States an expression as an assumption, and if possible, verifies that the > -assumption is valid. For example, @code{assume(n > 0)}. > - > -@kindex axiom > -@item axiom > -Introduces an axiom definition. Axioms introduce requirements on values. > - > -@kindex forall > -@item forall > -Introduces a universally quantified object in an axiom. For example, > -@code{forall (int n) n + 0 == n}. > - > -@kindex concept > -@item concept > -Introduces a concept definition. Concepts are sets of syntactic and semantic > -requirements on types and their values. > - > -@kindex requires > -@item requires > -Introduces constraints on template arguments or requirements for a member > -function of a class template. > -@end table > - > -The front end also exposes a number of internal mechanism that can be used > -to simplify the writing of type traits. Note that some of these traits are > -likely to be removed in the future. > - > @defbuiltin{bool __is_same (@var{type1}, @var{type2})} > A binary type trait: @code{true} whenever the @var{type1} and > @var{type2} refer to the same type.
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 302c3299ede..c1ab526e871 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -29213,7 +29213,6 @@ Predefined Macros,cpp,The GNU C Preprocessor}). * C++ Attributes:: Variable, function, and type attributes for C++ only. * Function Multiversioning:: Declaring multiple function versions. * Type Traits:: Compiler support for type traits. -* C++ Concepts:: Improved support for generic programming. * Deprecated Features:: Things will disappear from G++. * Backwards Compatibility:: Compatibilities with earlier definitions of C++. @end menu @@ -30090,49 +30089,6 @@ 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 - -C++ concepts provide much-improved support for generic programming. In -particular, they allow the specification of constraints on template arguments. -The constraints are used to extend the usual overloading and partial -specialization capabilities of the language, allowing generic data structures -and algorithms to be ``refined'' based on their properties rather than their -type names. - -The following keywords are reserved for concepts. - -@table @code -@kindex assumes -@item assumes -States an expression as an assumption, and if possible, verifies that the -assumption is valid. For example, @code{assume(n > 0)}. - -@kindex axiom -@item axiom -Introduces an axiom definition. Axioms introduce requirements on values. - -@kindex forall -@item forall -Introduces a universally quantified object in an axiom. For example, -@code{forall (int n) n + 0 == n}. - -@kindex concept -@item concept -Introduces a concept definition. Concepts are sets of syntactic and semantic -requirements on types and their values. - -@kindex requires -@item requires -Introduces constraints on template arguments or requirements for a member -function of a class template. -@end table - -The front end also exposes a number of internal mechanism that can be used -to simplify the writing of type traits. Note that some of these traits are -likely to be removed in the future. - @defbuiltin{bool __is_same (@var{type1}, @var{type2})} A binary type trait: @code{true} whenever the @var{type1} and @var{type2} refer to the same type.