diff mbox series

doc: remove outdated C++ Concepts section

Message ID 20241015180524.1857285-1-ppalka@redhat.com
State New
Headers show
Series doc: remove outdated C++ Concepts section | expand

Commit Message

Patrick Palka Oct. 15, 2024, 6:05 p.m. UTC
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.

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(-)

Comments

Jason Merrill Oct. 17, 2024, 12:45 p.m. UTC | #1
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 mbox series

Patch

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.