[concepts.syn] # 18 Concepts library [[concepts]](./#concepts) ## 18.3 Header synopsis [concepts.syn] [🔗](#header:%3cconcepts%3e) // all freestandingnamespace std {// [[concepts.lang]](concepts.lang "18.4 Language-related concepts"), language-related concepts// [[concept.same]](concept.same "18.4.2 Concept same_­as"), concept [same_as](concept.same#concept:same_as "18.4.2 Concept same_­as [concept.same]")templateconcept same_as = *see below*; // [[concept.derived]](concept.derived "18.4.3 Concept derived_­from"), concept [derived_from](concept.derived#concept:derived_from "18.4.3 Concept derived_­from [concept.derived]")templateconcept derived_from = *see below*; // [[concept.convertible]](concept.convertible "18.4.4 Concept convertible_­to"), concept [convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_­to [concept.convertible]")templateconcept convertible_to = *see below*; // [[concept.commonref]](concept.commonref "18.4.5 Concept common_­reference_­with"), concept [common_reference_with](concept.commonref#concept:common_reference_with "18.4.5 Concept common_­reference_­with [concept.commonref]")templateconcept common_reference_with = *see below*; // [[concept.common]](concept.common "18.4.6 Concept common_­with"), concept [common_with](concept.common#concept:common_with "18.4.6 Concept common_­with [concept.common]")templateconcept common_with = *see below*; // [[concepts.arithmetic]](concepts.arithmetic "18.4.7 Arithmetic concepts"), arithmetic conceptstemplateconcept integral = *see below*; templateconcept signed_integral = *see below*; templateconcept unsigned_integral = *see below*; templateconcept floating_point = *see below*; // [[concept.assignable]](concept.assignable "18.4.8 Concept assignable_­from"), concept [assignable_from](concept.assignable#concept:assignable_from "18.4.8 Concept assignable_­from [concept.assignable]")templateconcept assignable_from = *see below*; // [[concept.swappable]](concept.swappable "18.4.9 Concept swappable"), concept [swappable](concept.swappable#concept:swappable "18.4.9 Concept swappable [concept.swappable]")namespace ranges {inline namespace *unspecified* {inline constexpr *unspecified* swap = *unspecified*; }}templateconcept swappable = *see below*; templateconcept swappable_with = *see below*; // [[concept.destructible]](concept.destructible "18.4.10 Concept destructible"), concept [destructible](concept.destructible#concept:destructible "18.4.10 Concept destructible [concept.destructible]")templateconcept destructible = *see below*; // [[concept.constructible]](concept.constructible "18.4.11 Concept constructible_­from"), concept [constructible_from](concept.constructible#concept:constructible_from "18.4.11 Concept constructible_­from [concept.constructible]")templateconcept constructible_from = *see below*; // [[concept.default.init]](concept.default.init "18.4.12 Concept default_­initializable"), concept [default_initializable](concept.default.init#concept:default_initializable "18.4.12 Concept default_­initializable [concept.default.init]")templateconcept default_initializable = *see below*; // [[concept.moveconstructible]](concept.moveconstructible "18.4.13 Concept move_­constructible"), concept [move_constructible](concept.moveconstructible#concept:move_constructible "18.4.13 Concept move_­constructible [concept.moveconstructible]")templateconcept move_constructible = *see below*; // [[concept.copyconstructible]](concept.copyconstructible "18.4.14 Concept copy_­constructible"), concept [copy_constructible](concept.copyconstructible#concept:copy_constructible "18.4.14 Concept copy_­constructible [concept.copyconstructible]")templateconcept copy_constructible = *see below*; // [[concepts.compare]](concepts.compare "18.5 Comparison concepts"), comparison concepts// [[concept.equalitycomparable]](concept.equalitycomparable "18.5.4 Concept equality_­comparable"), concept [equality_comparable](concept.equalitycomparable#concept:equality_comparable "18.5.4 Concept equality_­comparable [concept.equalitycomparable]")templateconcept equality_comparable = *see below*; templateconcept equality_comparable_with = *see below*; // [[concept.totallyordered]](concept.totallyordered "18.5.5 Concept totally_­ordered"), concept [totally_ordered](concept.totallyordered#concept:totally_ordered "18.5.5 Concept totally_­ordered [concept.totallyordered]")templateconcept totally_ordered = *see below*; templateconcept totally_ordered_with = *see below*; // [[concepts.object]](concepts.object "18.6 Object concepts"), object conceptstemplateconcept movable = *see below*; templateconcept copyable = *see below*; templateconcept semiregular = *see below*; templateconcept regular = *see below*; // [[concepts.callable]](concepts.callable "18.7 Callable concepts"), callable concepts// [[concept.invocable]](concept.invocable "18.7.2 Concept invocable"), concept [invocable](concept.invocable#concept:invocable "18.7.2 Concept invocable [concept.invocable]")templateconcept invocable = *see below*; // [[concept.regularinvocable]](concept.regularinvocable "18.7.3 Concept regular_­invocable"), concept [regular_invocable](concept.regularinvocable#concept:regular_invocable "18.7.3 Concept regular_­invocable [concept.regularinvocable]")templateconcept regular_invocable = *see below*; // [[concept.predicate]](concept.predicate "18.7.4 Concept predicate"), concept [predicate](concept.predicate#concept:predicate "18.7.4 Concept predicate [concept.predicate]")templateconcept predicate = *see below*; // [[concept.relation]](concept.relation "18.7.5 Concept relation"), concept [relation](concept.relation#concept:relation "18.7.5 Concept relation [concept.relation]")templateconcept relation = *see below*; // [[concept.equiv]](concept.equiv "18.7.6 Concept equivalence_­relation"), concept [equivalence_relation](concept.equiv#concept:equivalence_relation "18.7.6 Concept equivalence_­relation [concept.equiv]")templateconcept equivalence_relation = *see below*; // [[concept.strictweakorder]](concept.strictweakorder "18.7.7 Concept strict_­weak_­order"), concept [strict_weak_order](concept.strictweakorder#concept:strict_weak_order "18.7.7 Concept strict_­weak_­order [concept.strictweakorder]")templateconcept strict_weak_order = *see below*;}