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>;
142template<
typename Context>
148concept nullable =
requires (T &a) { a =
nullptr; };
DOXYGEN BUG.
Definition algorithm_misc.hpp:20
The HikoGUI namespace.
Definition recursive_iterator.hpp:15
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:378
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