Files
2025-10-25 03:02:53 +03:00

10 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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