Concepts
concept, requires, constrained templates and abbreviated function templates, plus the constraint-satisfaction fixes.
Connected features
Papers
12 · Toronto 2017 → Prague 2020Merges the Concepts TS: concept, requires-clauses and requires-expressions.
Fills functionality gaps in constraints (e.g. requires-expressions in more places).
Replaces trailing -> Concept return-type-requirements with -> Concept<Args> type-constraints.
Adds constrained auto and abbreviated function templates (void f(Sortable auto x)).
Allows conditionally trivial special member functions via constraints.
Fixes the semantics of return-type-requirements.
Allows unconstrained template template parameters to match constrained templates.
Checks constraint satisfaction for non-templates when forming a pointer to function (NB US105).
Specifies declaration matching for non-dependent requires-clauses.
Disambiguates nested requirements in requires-expressions.
Unifies 'models' and 'satisfies' terminology.
Makes changing the value of a concept-id across a program ill-formed.