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
Table Clause 48.