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 {};
86concept pointer = std::is_pointer_v<std::remove_cvref_t<T>>;
90concept noPointer = ! std::is_pointer_v<std::remove_cvref_t<T>>;
94concept uniquePtr = detail::IsStdUniquePtr<T>::value;
102concept stdPair =
requires (T& t) { [] <
class A, class B> (std::pair<A, B>&) {} (t); };
106concept stdTuple =
requires (T& t) { [] <
class... Ts> (std::tuple<Ts...>&) {} (t); };
108template <
class T,
class... TupleTypes>
116concept constant =
requires (
const void* ptr) { ptr = &C::value; };
122template <
class C,
class T>
132template <
class T,
class ValueType>
143template <
class T,
class... U>
144concept same = (std::same_as<T, U> || ...);
Constrains a pack of elements to be the same type.
Definition: GenericConcepts.h:144
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:123
Constrains the type to be a class that defines a static const value field.
Definition: GenericConcepts.h:116
Constrains a type to be an lvalue reference.
Definition: GenericConcepts.h:98
Constrains a type to be no pointer of a reference to a pointer.
Definition: GenericConcepts.h:90
Constrains a type to be non const.
Definition: GenericConcepts.h:82
Constrains a type to be a pointer or a reference to a pointer.
Definition: GenericConcepts.h:86
Constrains the type to be a range, this is a class with a getStart, getLength and getEnd member funct...
Definition: GenericConcepts.h:133
Constrains the type to be a range, this is a class with a getStart, getLength and getEnd member funct...
Definition: GenericConcepts.h:127
Constrains a type to represent a real valued number.
Definition: NumericTypeConcepts.h:79
Constrains the type to be any instance of std::pair.
Definition: GenericConcepts.h:102
Definition: GenericConcepts.h:109
Constrains the type to be any instance of std::tuple.
Definition: GenericConcepts.h:106
Constrains a type to be trivially copyable.
Definition: GenericConcepts.h:78
Constrains the type to be any instance of std::unique_ptr.
Definition: GenericConcepts.h:94