7#include "ll/api/base/Macro.h"
8#include "ll/api/base/StdInt.h"
9#include "ll/api/base/TypeTraits.h"
14namespace ll::concepts {
18template <
class T,
class U>
21template <
class T,
class... Ts>
22concept IsOneOf = traits::is_one_of_v<T, Ts...>;
29 typename std::remove_cvref_t<T>::value_type;
30 typename std::remove_cvref_t<T>::error_type;
31 typename std::remove_cvref_t<T>::unexpected_type;
34 requires std::is_same_v<void, typename std::remove_cvref_t<T>::value_type> ||
requires(T e) { e.value(); };
45 typename std::remove_cvref_t<T>::value_type;
49concept RangeLoopable = std::is_bounded_array_v<std::remove_cvref_t<T>> ||
requires(T t) {
59 typename std::remove_cvref_t<T>::key_type;
60 typename std::remove_cvref_t<T>::mapped_type;
65 typename std::remove_cvref_t<T>::storage_type;
66 typename std::remove_cvref_t<T>::listener_type;
76template <
class T,
template <
class...>
class Z>
81 std::tuple_size<std::remove_cvref_t<T>>::value;
88template <
class T,
template <
class...>
class Z>
Definition Concepts.h:104
Definition Concepts.h:101