Files
cppdraft_translate/cppdraft/concepts/syn.md
2025-10-25 03:02:53 +03:00

10 lines
6.8 KiB
Markdown
Raw 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*;}