vkdb
A time series database engine in C++.
Loading...
Searching...
No Matches
concepts.h
1#ifndef UTILS_CONCEPTS_H
2#define UTILS_CONCEPTS_H
3
4#include <concepts>
5
13template <typename T, typename U>
15 std::is_same_v<std::remove_cvref_t<T>, std::remove_cvref_t<U>>;
16
22template <typename T>
23concept HasNoCVRefQuals = std::is_same_v<T, std::remove_cvref_t<T>>;
24
30template <typename T>
31concept RegularNoCVRefQuals = std::regular<T> && HasNoCVRefQuals<T>;
32
38template <typename T>
39concept Arithmetic = std::is_arithmetic_v<T>;
40
46template <typename T>
48
56template <typename U, typename... Ts>
58
66template <typename T, typename U>
68 = std::convertible_to<T, U> && HasNoCVRefQuals<T>;
69
77template <typename U, typename... Ts>
80
88template <typename T, typename U>
90 = std::constructible_from<U, T> && HasNoCVRefQuals<T>;
91
99template <typename U, typename... Ts>
102
103
104#endif // UTILS_CONCEPTS_H
Concept for types that are all constructible to another and have no cv- or ref-qualifiers.
Definition concepts.h:101
Concept for types that are all convertible to another and have no cv- or ref-qualifiers.
Definition concepts.h:79
Concept for types that are all the same as another after removing cv- and ref-qualifiers.
Definition concepts.h:57
Concept for arithmetic types that have no cv- or ref-qualifiers.
Definition concepts.h:47
Concept for arithmetic types.
Definition concepts.h:39
Concept for a type that is constructible to another and has no cv- or ref-qualifiers.
Definition concepts.h:90
Concept for a type that is convertible to another and has no cv- or ref-qualifiers.
Definition concepts.h:68
Concept for types that have no cv- or ref-qualifiers.
Definition concepts.h:23
Concept for regular types that have no cv- or ref-qualifiers.
Definition concepts.h:31
Concept for types that are the same after removing cv- and ref-qualifiers.
Definition concepts.h:14