HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Data Structures | Namespaces | Typedefs | Functions | Variables
type_traits.hpp File Reference
#include "../macros.hpp"
#include <cstdint>
#include <type_traits>
#include <string>
#include <string_view>
#include <memory>
#include <variant>
#include <atomic>

Go to the source code of this file.

Data Structures

struct  hi::v1::is_numeric_signed_integral< T >
 Is a numeric signed integer. More...
 
struct  hi::v1::is_numeric_signed_integral< signed char >
 
struct  hi::v1::is_numeric_signed_integral< signed short >
 
struct  hi::v1::is_numeric_signed_integral< signed int >
 
struct  hi::v1::is_numeric_signed_integral< signed long >
 
struct  hi::v1::is_numeric_signed_integral< signed long long >
 
struct  hi::v1::is_numeric_unsigned_integral< T >
 Is a numeric unsigned integer. More...
 
struct  hi::v1::is_numeric_unsigned_integral< unsigned int >
 
struct  hi::v1::is_numeric_unsigned_integral< unsigned char >
 
struct  hi::v1::is_numeric_unsigned_integral< unsigned short >
 
struct  hi::v1::is_numeric_unsigned_integral< unsigned long >
 
struct  hi::v1::is_numeric_unsigned_integral< unsigned long long >
 
struct  hi::v1::is_numeric_integral< T >
 Is a numeric integer. More...
 
struct  hi::v1::is_numeric_integral< unsigned int >
 
struct  hi::v1::is_numeric_integral< unsigned char >
 
struct  hi::v1::is_numeric_integral< unsigned short >
 
struct  hi::v1::is_numeric_integral< unsigned long >
 
struct  hi::v1::is_numeric_integral< unsigned long long >
 
struct  hi::v1::is_numeric_integral< signed char >
 
struct  hi::v1::is_numeric_integral< signed short >
 
struct  hi::v1::is_numeric_integral< signed int >
 
struct  hi::v1::is_numeric_integral< signed long >
 
struct  hi::v1::is_numeric_integral< signed long long >
 
struct  hi::v1::is_numeric< T >
 Is a numeric. More...
 
struct  hi::v1::is_numeric< unsigned char >
 
struct  hi::v1::is_numeric< unsigned short >
 
struct  hi::v1::is_numeric< unsigned int >
 
struct  hi::v1::is_numeric< unsigned long >
 
struct  hi::v1::is_numeric< unsigned long long >
 
struct  hi::v1::is_numeric< signed char >
 
struct  hi::v1::is_numeric< signed short >
 
struct  hi::v1::is_numeric< signed int >
 
struct  hi::v1::is_numeric< signed long >
 
struct  hi::v1::is_numeric< signed long long >
 
struct  hi::v1::is_numeric< float >
 
struct  hi::v1::is_numeric< double >
 
struct  hi::v1::is_numeric< long double >
 
struct  hi::v1::is_character< T >
 
struct  hi::v1::is_character< char >
 
struct  hi::v1::is_character< wchar_t >
 
struct  hi::v1::is_character< char8_t >
 
struct  hi::v1::is_character< char16_t >
 
struct  hi::v1::is_character< char32_t >
 
struct  hi::v1::is_character< char const >
 
struct  hi::v1::is_character< wchar_t const >
 
struct  hi::v1::is_character< char8_t const >
 
struct  hi::v1::is_character< char16_t const >
 
struct  hi::v1::is_character< char32_t const >
 
struct  hi::v1::is_byte_like< T >
 An array of this type will implicitly create objects within that array. More...
 
struct  hi::v1::is_byte_like< char >
 
struct  hi::v1::is_byte_like< unsigned char >
 
struct  hi::v1::is_byte_like< std::byte >
 
struct  hi::v1::is_byte_like< char const >
 
struct  hi::v1::is_byte_like< unsigned char const >
 
struct  hi::v1::is_byte_like< std::byte const >
 
struct  hi::v1::make_string< T >
 type-trait to convert a character to a string type. More...
 
struct  hi::v1::make_string< char >
 
struct  hi::v1::make_string< wchar_t >
 
struct  hi::v1::make_string< char8_t >
 
struct  hi::v1::make_string< char16_t >
 
struct  hi::v1::make_string< char32_t >
 
struct  hi::v1::make_string_view< T >
 type-trait to convert a character to a string_view type. More...
 
struct  hi::v1::make_string_view< char >
 
struct  hi::v1::make_string_view< wchar_t >
 
struct  hi::v1::make_string_view< char8_t >
 
struct  hi::v1::make_string_view< char16_t >
 
struct  hi::v1::make_string_view< char32_t >
 
struct  hi::v1::make_promote< T, U >
 
struct  hi::v1::make_intmax< T, Ei >
 
struct  hi::v1::make_intmax< T >
 
struct  hi::v1::has_native_intxx< N >
 Has an signed integer of a specific size, natively supported by the compiler. More...
 
struct  hi::v1::has_native_uintxx< N >
 Has an unsigned integer of a specific size, natively supported by the compiler. More...
 
struct  hi::v1::has_native_floatxx< N >
 Has an float of a specific size, natively supported by the compiler. More...
 
struct  hi::v1::has_intxx< N >
 Has an signed integer of a specific size. More...
 
struct  hi::v1::has_uintxx< N >
 Has an unsigned integer of a specific size. More...
 
struct  hi::v1::has_floatxx< N >
 Has an float of a specific size. More...
 
struct  hi::v1::make_intxx< N >
 Make an signed integer. More...
 
struct  hi::v1::make_uintxx< N >
 Make an unsigned integer. More...
 
struct  hi::v1::make_floatxx< N >
 Make an floating point. More...
 
struct  hi::v1::has_native_intxx< 64 >
 
struct  hi::v1::has_native_uintxx< 64 >
 
struct  hi::v1::has_native_floatxx< 64 >
 
struct  hi::v1::has_native_intxx< 32 >
 
struct  hi::v1::has_native_uintxx< 32 >
 
struct  hi::v1::has_native_floatxx< 32 >
 
struct  hi::v1::has_native_intxx< 16 >
 
struct  hi::v1::has_native_uintxx< 16 >
 
struct  hi::v1::has_native_intxx< 8 >
 
struct  hi::v1::has_native_uintxx< 8 >
 
struct  hi::v1::make_intxx< 64 >
 
struct  hi::v1::make_uintxx< 64 >
 
struct  hi::v1::make_floatxx< 64 >
 
struct  hi::v1::make_intxx< 32 >
 
struct  hi::v1::make_uintxx< 32 >
 
struct  hi::v1::make_floatxx< 32 >
 
struct  hi::v1::make_intxx< 16 >
 
struct  hi::v1::make_uintxx< 16 >
 
struct  hi::v1::make_intxx< 8 >
 
struct  hi::v1::make_uintxx< 8 >
 
struct  hi::v1::remove_cvptr< T >
 
struct  hi::v1::copy_cv< To, From, Ei >
 Type-trait to copy const volatile qualifiers from one type to another. More...
 
struct  hi::v1::copy_cv< To, From >
 
struct  hi::v1::has_value_type< T >
 
struct  hi::v1::has_add_callback< T >
 
struct  hi::v1::is_decayed_base_of< BaseType, DerivedType >
 
struct  hi::v1::is_derived_from< DerivedType, BaseType >
 
struct  hi::v1::is_decayed_derived_from< DerivedType, BaseType >
 
struct  hi::v1::is_atomic< T >
 
struct  hi::v1::is_atomic< std::atomic< T > >
 
struct  hi::v1::use_first< First, Second >
 
struct  hi::v1::is_forward_of< Context, Expected, FirstOtherExpected, OtherExpected... >
 
struct  hi::v1::is_forward_of< Context, Expected >
 
struct  hi::v1::is_forward_of< Context, std::shared_ptr< Expected > >
 
struct  hi::v1::is_forward_of< Context, std::weak_ptr< Expected > >
 
struct  hi::v1::is_forward_of< Context, std::unique_ptr< Expected > >
 
struct  hi::v1::is_forward_of< Context, Expected * >
 
struct  hi::v1::is_forward_of< Context, Result(Args...)>
 
struct  hi::v1::forward_copy_or_ref< Context >
 
struct  hi::v1::variant_decay< T >
 Decays types for use as elements in std::variant. More...
 
struct  hi::v1::variant_decay< void >
 
struct  hi::v1::overloaded< Ts >
 Helper type to turn a set of lambdas into a single overloaded type to pass to std::visit(). More...
 
struct  hi::v1::default_values< T >
 A type traits for generating default values of a type. More...
 
struct  hi::v1::default_values< T >
 

Namespaces

namespace  hi
 The HikoGUI namespace.
 
namespace  hi::v1
 The HikoGUI API version 1.
 

Typedefs

template<typename T >
using hi::v1::make_string_t = typename make_string<T>::type
 type-trait to convert a character to a string type.
 
template<typename T >
using hi::v1::make_string_view_t = typename make_string_view<T>::type
 type-trait to convert a character to a string_view type.
 
template<typename T , typename U >
using hi::v1::make_promote_t = typename make_promote<T, U>::type
 
template<typename T >
using hi::v1::make_intmax_t = typename make_intmax<T>::type
 
template<std::size_t N>
using hi::v1::make_intxx_t = typename make_intxx<N>::type
 
template<std::size_t N>
using hi::v1::make_uintxx_t = typename make_uintxx<N>::type
 
template<std::size_t N>
using hi::v1::make_floatxx_t = typename make_floatxx<N>::type
 
template<typename T >
using hi::v1::remove_cvptr_t = remove_cvptr<T>::type
 
template<typename To , typename From >
using hi::v1::copy_cv_t = typename copy_cv<To, From>::type
 Type-trait to copy const volatile qualifiers from one type to another.
 
template<typename First , typename Second >
using hi::v1::use_first_t = use_first<First, Second>
 
template<typename Context >
using hi::v1::forward_copy_or_ref_t = forward_copy_or_ref<Context>::type
 
template<typename T >
using hi::v1::variant_decay_t = variant_decay<T>::type
 

Functions

 hi_export_module (hikogui.utility.type_traits)
 

Variables

template<typename T >
constexpr bool hi::v1::is_numeric_signed_integral_v = is_numeric_signed_integral<T>::value
 
template<typename T >
constexpr bool hi::v1::is_numeric_unsigned_integral_v = is_numeric_unsigned_integral<T>::value
 
template<typename T >
constexpr bool hi::v1::is_numeric_integral_v = is_numeric_integral<T>::value
 
template<typename T >
constexpr bool hi::v1::is_numeric_v = is_numeric<T>::value
 
template<typename T >
constexpr bool hi::v1::is_character_v = is_character<T>::value
 
template<typename T >
constexpr bool hi::v1::is_byte_like_v = is_byte_like<T>::value
 An array of this type will implicitly create objects within that array.
 
template<std::size_t N>
constexpr bool hi::v1::has_native_intxx_v = has_native_intxx<N>::value
 
template<std::size_t N>
constexpr bool hi::v1::has_native_uintxx_v = has_native_uintxx<N>::value
 
template<std::size_t N>
constexpr bool hi::v1::has_native_floatxx_v = has_native_floatxx<N>::value
 
template<std::size_t N>
constexpr bool hi::v1::has_intxx_v = has_intxx<N>::value
 
template<std::size_t N>
constexpr bool hi::v1::has_uintxx_v = has_uintxx<N>::value
 
template<std::size_t N>
constexpr bool hi::v1::has_floatxx_v = has_floatxx<N>::value
 
template<typename T >
constexpr bool hi::v1::has_value_type_v = has_value_type<T>::value
 
template<typename T >
constexpr bool hi::v1::has_add_callback_v = has_add_callback<T>::value
 
template<typename BaseType , typename DerivedType >
constexpr bool hi::v1::is_decayed_base_of_v = is_decayed_base_of<BaseType, DerivedType>::value
 
template<typename DerivedType , typename BaseType >
constexpr bool hi::v1::is_derived_from_v = is_derived_from<DerivedType, BaseType>::value
 
template<typename DerivedType , typename BaseType >
constexpr bool hi::v1::is_decayed_derived_from_v = is_decayed_derived_from<DerivedType, BaseType>::value
 
template<typename T >
constexpr bool hi::v1::is_atomic_v = is_atomic<T>::value
 
template<typename Out , typename In >
constexpr bool hi::v1::type_in_range_v
 All values of numeric type In can be represented without loss of range by numeric type Out.
 
template<typename Context , typename Expected , typename... OtherExpected>
constexpr bool hi::v1::is_forward_of_v = is_forward_of<Context, Expected, OtherExpected...>::value
 
template<typename T >
constexpr bool hi::v1::default_values_v = default_values<T>::value