27template <
class Lhs,
class Rhs = Lhs>
32concept init =
requires (T& t,
void* ptr,
size_t s) { t.init (ptr, s); };
47template <
class T,
class ValueType>
51template <
class T,
class ValueType>
55template <
class T,
class ValueType>
65struct IsStdUniquePtr : std::false_type {};
67template <
class T,
class D>
68struct IsStdUniquePtr<std::unique_ptr<T, D>> : std::true_type {};
71struct IsStdTuple : std::false_type {};
74struct IsStdTuple<std::tuple<T...>> : std::true_type {};
92concept pointer = std::is_pointer_v<std::remove_cvref_t<T>>;
96concept noPointer = ! std::is_pointer_v<std::remove_cvref_t<T>>;
106template <
class T,
class... TupleTypes>
114concept constant =
requires (
const void* ptr) { ptr = &C::value; };
120template <
class C,
class T>
130template <
class T,
class ValueType>
141template <
class T,
class... U>
142concept same = (std::same_as<T, U> || ...);
Constrains a pack of elements to be the same type.
Definition: GenericConcepts.h:142
Constrains the type to have a member function function getEnd() const which returns ValueType.
Definition: GenericConcepts.h:56
Constrains the type to have a member function function getEnd() const which returns a real number.
Definition: GenericConcepts.h:44
Constrains the type to have a member function function getLength() const which returns ValueType.
Definition: GenericConcepts.h:52
Constrains the type to have a member function function getLength() const which returns a real number.
Definition: GenericConcepts.h:40
Constrains the type to have a member function function getStart() const which returns ValueType.
Definition: GenericConcepts.h:48
Constrains the type to have a member function function getStart() const which returns a real number.
Definition: GenericConcepts.h:36
Constrains the type to have a member function init that takes a void pointer and a size_t.
Definition: GenericConcepts.h:32
Constrains the type to define an operator +=.
Definition: GenericConcepts.h:28
Constrains the type to be a class that defines a static const value field of a certain type.
Definition: GenericConcepts.h:121
Constrains the type to be a class that defines a static const value field.
Definition: GenericConcepts.h:114
Constrains a type to be no pointer of a reference to a pointer.
Definition: GenericConcepts.h:96
Constrains a type to be non const.
Definition: GenericConcepts.h:88
Constrains a type to be a pointer of a reference to a pointer.
Definition: GenericConcepts.h:92
Constrains the type to be a range, this is a class with a getStart, getLength and getEnd member funct...
Definition: GenericConcepts.h:131
Constrains the type to be a range, this is a class with a getStart, getLength and getEnd member funct...
Definition: GenericConcepts.h:125
Constrains a type to represent a real valued number.
Definition: NumericTypeConcepts.h:75
Definition: GenericConcepts.h:107
Constrains the type to be any instance of std::tuple.
Definition: GenericConcepts.h:104
Constrains a type to be trivially copyable.
Definition: GenericConcepts.h:84
Constrains the type to be any instance of std::unique_ptr.
Definition: GenericConcepts.h:100