18 Concepts library [concepts]

18.1 General [concepts.general]

This Clause describes library components that C++ programs may use to perform compile-time validation of template arguments and perform function dispatch based on properties of types.
The purpose of these concepts is to establish a foundation for equational reasoning in programs.
The following subclauses describe language-related concepts, comparison concepts, object concepts, and callable concepts as summarized in [tab:concepts.lib.summary]Table *tab:concepts.lib.summary.
Table 37 — Fundamental concepts library summary
Equality preservation
Language-related concepts
Comparison concepts
Object concepts
Callable concepts