![]() |
VCCC
2024.05
VisualCamp Common C++ library
|
Concepts. More...
Implementation of concepts is impossible without language features of C++20. struct based implementations (type_traits like) is conducted instead.
Note: Subsume is impossible without using actual concept.
Modules | |
| assignable_from | |
| specifies that a type is assignable from another type | |
| boolean_testable | |
| specifies that a type can be used in Boolean contexts | |
| convertible_to | |
| specifies that a type is implicitly convertible to another type | |
| derived_from | |
| specifies that a type is derived from another type | |
| implicit_expression_check | |
| helper class for implementing implicit expression variations | |
| same_as | |
| specifies that a type is the same as another type | |
Classes | |
| struct | common_reference_with< T, U > |
| specifies that two types share a common reference type More... | |
| struct | common_with< T, U > |
| specifies that two types share a common type More... | |
| struct | comparison_common_type_with< T, U > |
| specifies that two types share a common type, and a const lvalue or a non-const rvalue of either type is convertible to that common type. More... | |
| struct | constructible_from< T, Args > |
| specifies that a variable of the type can be constructed from or bound to a set of argument types More... | |
| struct | copy_constructible< T > |
| specifies that an object of a type can be copy constructed and move constructed More... | |
| struct | copyable< T > |
| specifies that an object of a type can be copied, moved, and swapped More... | |
| struct | default_initializable< T > |
| specifies that an object of a type can be default constructed More... | |
| struct | dereferenceable< T > |
| specifies that an object of a type can be dereferenced More... | |
| struct | derived_from_single_crtp< Derived, Base > |
| specifies that a type is derived from single specialization of CRTP base More... | |
| struct | destructible< T > |
| specifies that an object of the type can be destroyed More... | |
| struct | different_from< Test, From > |
| struct | different_from_this< Test,... > |
| struct | different_from_this< Test, T > |
| struct | equality_comparable< T > |
specifies that operator == is an equivalence relation More... | |
| struct | equality_comparable_with< T, U > |
specifies that operator == is an equivalence relation More... | |
| struct | equivalence_relation< R, T, U > |
| specifies that a relation imposes an equivalence relation More... | |
| struct | invocable< F, Args > |
| specifies that a callable type can be invoked with a given set of argument types More... | |
| struct | regular_invocable< F, Args > |
| specifies that a callable type can be invoked with a given set of argument types More... | |
| struct | movable< T > |
| specifies that an object of a type can be moved and swapped More... | |
| struct | partially_ordered_with< T, U > |
| struct | predicate< F, Args > |
| specifies that a callable type is a Boolean predicate More... | |
| struct | regular< T > |
specifies that a type is regular, that is, it is both semiregular and equality_comparable More... | |
| struct | relation< R, T, U > |
| specifies that a callable type is a binary relation More... | |
| struct | semiregular< T > |
| specifies that an object of a type can be copied, moved, swapped, and default constructed More... | |
| struct | strict_weak_order< R, T, U > |
| specifies that a relation imposes a strict weak ordering More... | |
| struct | subtractable< T > |
| struct | swappable< T > |
| specifies that a type can be swapped or that two types can be swapped with each other More... | |
| struct | swappable_with< T, U > |
| specifies that a type can be swapped or that two types can be swapped with each other More... | |
| struct | totally_ordered< T > |
| specifies that the comparison operators on the type yield a total order More... | |
| struct | totally_ordered_with< T, U > |
| specifies that the comparison operators on the type yield a total order More... | |
| struct | ValueSwappable< I1, I2 > |
| struct | weakly_equality_comparable_with< T, U > |
specifies that two different objects can be compared for equality with each other (in either order) using both == and != More... | |
Variables | |
| constexpr VCCC_INLINE_OR_STATIC detail_ranges_swap::swap_niebloid | swap {} |
| swaps the values of two objects More... | |
|
constexpr |
Exchanges the values referenced by t and u.
vccc::ranges::swap is a niebloid.