Next: Statement Block Symbols, Previous: Java Symbols, Up: Syntactic Symbols [Contents][Index]
The C++20 standard introduced the notion of concepts and requirements, a typical instance of which looks something like this:
1: template <typename T>
2: requires
3: requires (T t) {
4: { ++t; }
5: }
6: && std::is_integral<T>
7: int foo();
Line 1 is assigned the familiar topmost-intro. Line 2 gets
topmost-intro-cont, being the keyword which introduces a
requires clause. Lines 3, 6, and 7 are assigned the syntax
constraint-cont, being continuations of the requires clause
started on line 2. Lines 4 and 5 get the syntaxes
defun-block-intro and defun-close, being analyzed as
though part of a function.
Note that the requires on Line 3 begins a requires
expression, not a requires clause, hence its components are not
assigned constraint-cont. See
https://en.cppreference.com/w/cpp/language/requires.