@@ -72,42 +72,42 @@ void init_20()
7272*/
7373
7474/* *
75- @defgroup req20 Requires clause and expression
75+ @defgroup req20 ' Requires' clause and expression
7676 @{
7777*/
7878
7979// Using 'requires':
8080// https://en.cppreference.com/w/cpp/keyword/requires
8181
82- template <typename T> requires is_integral_v<T> T constexpr requires_demo (T a) { return a + 1 ; };
82+ template <typename T> requires is_integral_v<T> T constexpr requires_demo (T a) { return a + 1 ; }
8383
8484static_assert (requires_demo(1 ) == 2 );
8585
8686/* *
8787 requires-clause can be after function declaration and supports template overloading
8888 */
8989
90- template <typename T> auto constexpr requires_demo (T && a) requires is_same_v<T, double> { return 2 ; };
90+ template <typename T> auto constexpr requires_demo (T && a) requires is_same_v<T, double> { return 2 ; }
9191static_assert (requires_demo(0.1 ) == 2 );
9292
9393// Annotated example of complex requirement
9494template <class T >
9595requires // requires-clause
9696is_signed_v<T> || is_unsigned_v<T> && ! is_void_v<void > // constraint expression
97- void complex_requirement_demo () { };
97+ void complex_requirement_demo () { }
9898
9999// / Annotated example of requires-expression
100100
101101template < class T >
102102requires // requires-clause
103103requires () // requires-expression
104104{ true ;} // unevaluated requirements sequence
105- void requires_expression_demo () { };
105+ void requires_expression_demo () { }
106106
107- template <class T > requires requires (T a) { a / 0 ; } auto constexpr what (T a) { return 1 ; };
107+ template <class T > requires requires (T a) { a / 0 ; } auto constexpr what (T a) { return 1 ; }
108108static_assert (what(1 ) == 1 );
109109
110- template <class T > requires requires (T a) { a[0 ]; } auto constexpr what (T a) { return 2 ; };
110+ template <class T > requires requires (T a) { a[0 ]; } auto constexpr what (T a) { return 2 ; }
111111static_assert (what(" 2" ) == 2 );
112112
113113// / @}
@@ -116,15 +116,15 @@ static_assert(what("2") == 2);
116116 a concept can be defined as function, but not only
117117 */
118118
119- template <typename T> concept bool integral_ct () { return is_integral_v<T>; };
119+ template <typename T> concept bool integral_ct () { return is_integral_v<T>; }
120120
121- template <integral_ct T> constexpr T _inc3 (T a) { return a + 1 ; };
121+ template <integral_ct T> constexpr T _inc3 (T a) { return a + 1 ; }
122122
123123static_assert (_inc3(1 ) == 2 );
124124
125125// concept can replace type
126126
127- template <integral_ct T> constexpr T _inc1 (T a) { return a + 1 ; };
127+ template <integral_ct T> constexpr T _inc1 (T a) { return a + 1 ; }
128128
129129static_assert (_inc1<int >(1 ) == 2 );
130130
@@ -155,7 +155,7 @@ template <class T> concept integral = is_integral_v<T>;
155155
156156template <class T > concept integral_req_ct = requires (T a) { is_integral_v<T>; };
157157
158- template <integral_req_ct T> constexpr T _inc2 (T a) { return a + 1 ; };
158+ template <integral_req_ct T> constexpr T _inc2 (T a) { return a + 1 ; }
159159
160160static_assert (_inc2(1 ) == 2 );
161161
@@ -165,9 +165,9 @@ static_assert(_inc2(1) == 2);
165165
166166template <typename T> concept bool integral_func_req_ct ()
167167 requires requires () { is_integral_v<T>; }
168- { return true ; };
168+ { return true ; }
169169
170- template <integral_func_req_ct T> constexpr T _inc4 (T a) { return a + 1 ; };
170+ template <integral_func_req_ct T> constexpr T _inc4 (T a) { return a + 1 ; }
171171
172172static_assert (_inc4(1 ) == 2 );
173173
0 commit comments