8#include "../macros.hpp"
16hi_export_module(hikogui.utility.concepts);
18hi_export
namespace hi {
inline namespace v1 {
48template<
typename Context,
typename Expected>
55template<
typename Context,
typename Expected>
58template<
typename BaseType,
typename DerivedType>
59concept base_of = std::is_base_of_v<BaseType, DerivedType>;
61template<
typename BaseType,
typename DerivedType>
64template<
typename Context,
typename Expected>
67template<
typename DerivedType,
typename BaseType>
70template<
typename BaseType,
typename DerivedType>
73template<
typename BaseType,
typename DerivedType>
94 } -> std::convertible_to<std::string>;
101 } -> std::convertible_to<T>;
104template<
typename From,
typename To>
108 } -> std::convertible_to<To>;
115 } -> std::convertible_to<std::size_t>;
128template<
typename Context,
typename... Expected>
135template<
typename Context,
typename Expected,
typename... OtherExpected>
136concept forward_of = is_forward_of_v<Context, Expected, OtherExpected...>;
142template<
typename Context>
148concept nullable =
requires (T &a) { a =
nullptr; };
The HikoGUI namespace.
Definition recursive_iterator.hpp:15
The HikoGUI API version 1.
Definition recursive_iterator.hpp:16
T from_string(std::string_view str, int base=10)
Convert a string to an integer.
Definition charconv.hpp:73
hi_inline constexpr bool is_numeric_signed_integral_v
Definition type_traits.hpp:46
hi_inline constexpr bool is_numeric_unsigned_integral_v
Definition type_traits.hpp:71
hi_inline constexpr bool is_numeric_integral_v
Definition type_traits.hpp:107
hi_inline constexpr bool is_numeric_v
Definition type_traits.hpp:150
hi_inline constexpr bool is_byte_like_v
An array of this type will implicitly create objects within that array.
Definition type_traits.hpp:205
Definition concepts.hpp:21
Definition concepts.hpp:24
Definition concepts.hpp:27
Definition concepts.hpp:30
Definition concepts.hpp:33
Definition concepts.hpp:36
Definition concepts.hpp:39
Definition concepts.hpp:42
Different from.
Definition concepts.hpp:49
Incompatible with another type.
Definition concepts.hpp:56
Definition concepts.hpp:59
Definition concepts.hpp:62
Definition concepts.hpp:65
Definition concepts.hpp:68
Definition concepts.hpp:71
Definition concepts.hpp:74
Definition concepts.hpp:77
Definition concepts.hpp:84
Definition concepts.hpp:91
Definition concepts.hpp:98
Definition concepts.hpp:105
Definition concepts.hpp:112
Definition concepts.hpp:119
Concept for std::is_scoped_enum_v<T>.
Definition concepts.hpp:126
Definition concepts.hpp:129
True if T is a forwarded type of Forward.
Definition concepts.hpp:136
An array of this type will implicitly create objects within that array.
Definition concepts.hpp:143
True if T can be assigned with a nullptr.
Definition concepts.hpp:148
True if T is dereferenceable.
Definition concepts.hpp:155
True if T is both nullable and dereferenceable.
Definition concepts.hpp:164