35 lines
1.8 KiB
Markdown
35 lines
1.8 KiB
Markdown
[concepts.general]
|
||
|
||
# 18 Concepts library [[concepts]](./#concepts)
|
||
|
||
## 18.1 General [concepts.general]
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/concepts.tex#L6)
|
||
|
||
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[.](#1.sentence-1)
|
||
|
||
The purpose of these concepts is to establish
|
||
a foundation for equational reasoning in programs[.](#1.sentence-2)
|
||
|
||
[2](#2)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/concepts.tex#L12)
|
||
|
||
The following subclauses describe language-related concepts, comparison
|
||
concepts, object concepts, and callable concepts as summarized in
|
||
Table [48](#tab:concepts.summary "Table 48: Fundamental concepts library summary")[.](#2.sentence-1)
|
||
|
||
Table [48](#tab:concepts.summary) — Fundamental concepts library summary [[tab:concepts.summary]](./tab:concepts.summary)
|
||
|
||
| [ð](#tab:concepts.summary-row-1) | **Subclause** | **Header** |
|
||
| --- | --- | --- |
|
||
| [ð](#tab:concepts.summary-row-2)<br>[[concepts.equality]](concepts.equality "18.2 Equality preservation") | Equality preservation | |
|
||
| [ð](#tab:concepts.summary-row-3)<br>[[concepts.lang]](concepts.lang "18.4 Language-related concepts") | Language-related concepts | <concepts> |
|
||
| [ð](#tab:concepts.summary-row-4)<br>[[concepts.compare]](concepts.compare "18.5 Comparison concepts") | Comparison concepts | |
|
||
| [ð](#tab:concepts.summary-row-5)<br>[[concepts.object]](concepts.object "18.6 Object concepts") | Object concepts | |
|
||
| [ð](#tab:concepts.summary-row-6)<br>[[concepts.callable]](concepts.callable "18.7 Callable concepts") | Callable concepts | |
|