![]() |
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.