15 #include <type_traits>
42 template <
typename T_Type,
typename T_OtherType,
typename... T_TypeList>
43 [[nodiscard]] consteval
auto is_any_of() noexcept ->
bool;
60 template <std::integral T_Type>
76 template <
typename T_Type,
typename T_OtherType,
typename... T_TypeList>
77 [[nodiscard]] consteval
auto is_any_of() noexcept ->
bool
79 if constexpr (! std::is_same_v<T_Type, T_OtherType>)
81 if constexpr (
sizeof...(T_TypeList) != 0)
82 return is_any_of<T_Type, T_TypeList...>();
93 template <std::
integral T_Type>
96 if constexpr (std::is_signed_v<T_Type>)
Contains some basic definitions and concepts that are frequently needed.
Defines the fundamental data types.
consteval auto is_any_of() noexcept -> bool
Return true if the tested type is identical to any of a list of types.
Definition: type.h:77
constexpr auto signed_to_unsigned(T_Type value) -> EquallySizedUnsignedType< T_Type >
Cast an integer to an equally sized unsigned type.
Definition: type.h:94
typename std::conditional_t< std::is_unsigned_v< T_Type >, T_Type, std::conditional_t< std::is_same_v< T_Type, IPT >, UPT, std::conditional_t< sizeof(T_Type)==1, U8, std::conditional_t< sizeof(T_Type)==2, U16, std::conditional_t< sizeof(T_Type)==4, U32, U64 > >> >> EquallySizedUnsignedType
Unsigned integer type with the same size as the reference type.
Definition: definitions.h:32