|
HikoGUI
A low latency retained GUI
|
DOXYGEN BUG. More...
Concepts | |
| concept | awaitable_direct |
| Check if type can be directly co_await on. | |
| concept | awaitable_member |
| Check if type can be indirectly co_await on. | |
| concept | awaitable_non_member |
| Check if type can be indirectly co_await on. | |
| concept | awaitable |
Check if the type can be co_awaited on after conversion with awaitable_cast. | |
| concept | numeric_limited |
| concept | numeric |
| concept | numeric_integral |
| concept | numeric_signed_integral |
| concept | numeric_unsigned_integral |
| concept | arithmetic |
| concept | pointer |
| concept | reference |
| concept | lvalue_reference |
| concept | rvalue_reference |
| concept | trivially_copyable |
| concept | different_from |
| concept | base_of |
| concept | decayed_base_of |
| concept | derived_from |
| concept | decayed_derived_from |
| concept | strict_base_of |
| concept | strict_derived_from |
| concept | pre_incrementable |
| concept | pre_decrementable |
| concept | to_stringable |
| concept | from_stringable |
| concept | static_castableable |
| concept | sizeable |
| concept | scalar |
| concept | scoped_enum |
| Concept for std::is_scoped_enum_v<T>. | |
| concept | forward_of |
| True if T is a forwarded type of Forward. | |
| concept | byte_like |
| An array of this type will implicitly create objects within that array. | |
Typedefs | |
| template<typename T > | |
| using | awaitable_cast_t = hi_typename awaitable_cast<T>::type |
| Resolve the type that is directly-awaitable. | |
| template<typename T > | |
| using | await_resume_result_t = hi_typename await_resume_result<T>::type |
| Get the result type of an awaitable. | |
| using | ubig128 = bigint<uint64_t, 2, false> |
| using | big128 = bigint<uint64_t, 2, true> |
| using | uuid = bigint<uint64_t, 2, false> |
| using | byteptr = std::byte * |
| using | cbyteptr = std::byte const * |
| using | bstring = std::basic_string<std::byte, byte_char_traits> |
| using | bstring_view = std::basic_string_view<std::byte, byte_char_traits> |
| using | utc_nanoseconds = std::chrono::utc_time<std::chrono::nanoseconds> |
| using | sys_nanoseconds = std::chrono::sys_time<std::chrono::nanoseconds> |
| using | base2 = base_n<detail::base2_alphabet, 8, 1> |
| using | base8 = base_n<detail::base8_alphabet, 8, 3> |
| using | base16 = base_n<detail::base16_alphabet, 2, 1> |
| using | base32 = base_n<detail::base32_rfc4648_alphabet, 8, 5> |
| using | base32hex = base_n<detail::base32hex_rfc4648_alphabet, 8, 5> |
| using | base64 = base_n<detail::base64_rfc4648_alphabet, 4, 3> |
| using | base64url = base_n<detail::base64url_rfc4648_alphabet, 4, 3> |
| using | base85 = base_n<detail::base85_rfc1924_alphabet, 5, 4> |
| using | ascii85 = base_n<detail::base85_btoa_alphabet, 5, 4> |
| using | cmdline_option = std::variant<cmline_executable, cmdline_short_option, cmdline_long_option, cmdline_argument> |
| using | money = fixed<safe_int<int64_t>, 100> |
| using | font_family_id = tagged_id<uint16_t, "font_family_id"> |
| using | glyph_id = tagged_id<uint16_t, "glyph_id"> |
| template<typename T > | |
| using | forward_value_t = typename forward_value<T>::type |
Get the storage type of the forward_value functor. | |
| using | point2 = geo::point<float, 2> |
| using | point3 = geo::point<float, 3> |
| using | point2i = geo::point<int, 2> |
| using | point3i = geo::point<int, 3> |
| using | rotate2 = geo::rotate<2> |
| using | rotate3 = geo::rotate<3> |
| using | scale2 = geo::scale<2> |
| using | scale3 = geo::scale<3> |
| using | translate2 = geo::translate<float, 2> |
| using | translate3 = geo::translate<float, 3> |
| using | translate2i = geo::translate<int, 2> |
| using | translate3i = geo::translate<int, 3> |
| using | vector2 = geo::vector<float, 2> |
| using | vector3 = geo::vector<float, 3> |
| using | vector2i = geo::vector<int, 2> |
| using | vector3i = geo::vector<int, 3> |
| using | tr = translate |
| using | finterval = interval<float> |
| using | dinterval = interval<double> |
| using | jsonpath_node |
| template<typename T > | |
| using | observer_decay_t = observer_decay<T>::type |
| using | results1 = hi::results<double, 1> |
| using | results2 = hi::results<double, 2> |
| using | results3 = hi::results<double, 3> |
| using | sint64_t = safe_int<int64_t, on_overflow_t::Saturate> |
| using | sint32_t = safe_int<int32_t, on_overflow_t::Saturate> |
| using | sint16_t = safe_int<int16_t, on_overflow_t::Saturate> |
| using | sint8_t = safe_int<int8_t, on_overflow_t::Saturate> |
| using | suint64_t = safe_int<uint64_t, on_overflow_t::Saturate> |
| using | suint32_t = safe_int<uint32_t, on_overflow_t::Saturate> |
| using | suint16_t = safe_int<uint16_t, on_overflow_t::Saturate> |
| using | suint8_t = safe_int<uint8_t, on_overflow_t::Saturate> |
| using | aint64_t = safe_int<int64_t, on_overflow_t::Assert> |
| using | aint32_t = safe_int<int32_t, on_overflow_t::Assert> |
| using | aint16_t = safe_int<int16_t, on_overflow_t::Assert> |
| using | aint8_t = safe_int<int8_t, on_overflow_t::Assert> |
| using | auint64_t = safe_int<uint64_t, on_overflow_t::Assert> |
| using | auint32_t = safe_int<uint32_t, on_overflow_t::Assert> |
| using | auint16_t = safe_int<uint16_t, on_overflow_t::Assert> |
| using | auint8_t = safe_int<uint8_t, on_overflow_t::Assert> |
| using | tint64_t = safe_int<int64_t, on_overflow_t::Throw> |
| using | tint32_t = safe_int<int32_t, on_overflow_t::Throw> |
| using | tint16_t = safe_int<int16_t, on_overflow_t::Throw> |
| using | tint8_t = safe_int<int8_t, on_overflow_t::Throw> |
| using | tuint64_t = safe_int<uint64_t, on_overflow_t::Throw> |
| using | tuint32_t = safe_int<uint32_t, on_overflow_t::Throw> |
| using | tuint16_t = safe_int<uint16_t, on_overflow_t::Throw> |
| using | tuint8_t = safe_int<uint8_t, on_overflow_t::Throw> |
| using | xint64_t = safe_int<int64_t, on_overflow_t::Axiom> |
| using | xint32_t = safe_int<int32_t, on_overflow_t::Axiom> |
| using | xint16_t = safe_int<int16_t, on_overflow_t::Axiom> |
| using | xint8_t = safe_int<int8_t, on_overflow_t::Axiom> |
| using | xuint64_t = safe_int<uint64_t, on_overflow_t::Axiom> |
| using | xuint32_t = safe_int<uint32_t, on_overflow_t::Axiom> |
| using | xuint16_t = safe_int<uint16_t, on_overflow_t::Axiom> |
| using | xuint8_t = safe_int<uint8_t, on_overflow_t::Axiom> |
| using | _sip_hash24 = sip_hash<2, 4> |
| using | longreg_t = int64_t |
| Signed integer twice the size of a standard CPU register. | |
| using | ulongreg_t = uint64_t |
| Unsigned integer twice the size of a standard CPU register. | |
| using | agstring = std::basic_string<agrapheme> |
| using | agstring_view = std::basic_string_view<agrapheme> |
| using | token_vector = std::vector<hi::token_t> |
| using | token_iterator = typename token_vector::iterator |
| using | gstring = std::basic_string<grapheme> |
| using | gstring_view = std::basic_string_view<grapheme> |
| using | unicode_break_vector = std::vector<unicode_break_opportunity> |
| using | unicode_break_iterator = unicode_break_vector::iterator |
| using | unicode_break_const_iterator = unicode_break_vector::const_iterator |
| using | intreg_t = int32_t |
| using | uintreg_t = uint32_t |
| using | int128_t = __int128_t |
| Signed 128 bit integer. | |
| using | uint128_t = unsigned __int128_t |
| Unsigned 128 bit integer. | |
| using | os_handle = void * |
| using | file_handle = os_handle |
| using | big_uint64_buf_t = endian_buf_t<uint64_t, std::endian::big, 1> |
| using | big_uint32_buf_t = endian_buf_t<uint32_t, std::endian::big, 1> |
| using | big_uint16_buf_t = endian_buf_t<uint16_t, std::endian::big, 1> |
| using | big_int64_buf_t = endian_buf_t<int64_t, std::endian::big, 1> |
| using | big_int32_buf_t = endian_buf_t<int32_t, std::endian::big, 1> |
| using | big_int16_buf_t = endian_buf_t<int16_t, std::endian::big, 1> |
| using | little_uint64_buf_t = endian_buf_t<uint64_t, std::endian::little, 1> |
| using | little_uint32_buf_t = endian_buf_t<uint32_t, std::endian::little, 1> |
| using | little_uint16_buf_t = endian_buf_t<uint16_t, std::endian::little, 1> |
| using | little_int64_buf_t = endian_buf_t<int64_t, std::endian::little, 1> |
| using | little_int32_buf_t = endian_buf_t<int32_t, std::endian::little, 1> |
| using | little_int16_buf_t = endian_buf_t<int16_t, std::endian::little, 1> |
| using | native_uint64_buf_t = endian_buf_t<uint64_t, std::endian::native, 1> |
| using | native_uint32_buf_t = endian_buf_t<uint32_t, std::endian::native, 1> |
| using | native_uint16_buf_t = endian_buf_t<uint16_t, std::endian::native, 1> |
| using | native_int64_buf_t = endian_buf_t<int64_t, std::endian::native, 1> |
| using | native_int32_buf_t = endian_buf_t<int32_t, std::endian::native, 1> |
| using | native_int16_buf_t = endian_buf_t<int16_t, std::endian::native, 1> |
| using | big_uint64_buf_at = endian_buf_t<uint64_t, std::endian::big> |
| using | big_uint32_buf_at = endian_buf_t<uint32_t, std::endian::big> |
| using | big_uint16_buf_at = endian_buf_t<uint16_t, std::endian::big> |
| using | big_int64_buf_at = endian_buf_t<int64_t, std::endian::big> |
| using | big_int32_buf_at = endian_buf_t<int32_t, std::endian::big> |
| using | big_int16_buf_at = endian_buf_t<int16_t, std::endian::big> |
| using | little_uint64_buf_at = endian_buf_t<uint64_t, std::endian::little> |
| using | little_uint32_buf_at = endian_buf_t<uint32_t, std::endian::little> |
| using | little_uint16_buf_at = endian_buf_t<uint16_t, std::endian::little> |
| using | little_int64_buf_at = endian_buf_t<int64_t, std::endian::little> |
| using | little_int32_buf_at = endian_buf_t<int32_t, std::endian::little> |
| using | little_int16_buf_at = endian_buf_t<int16_t, std::endian::little> |
| using | native_uint64_buf_at = endian_buf_t<uint64_t, std::endian::native> |
| using | native_uint32_buf_at = endian_buf_t<uint32_t, std::endian::native> |
| using | native_uint16_buf_at = endian_buf_t<uint16_t, std::endian::native> |
| using | native_int64_buf_at = endian_buf_t<int64_t, std::endian::native> |
| using | native_int32_buf_at = endian_buf_t<int32_t, std::endian::native> |
| using | native_int16_buf_at = endian_buf_t<int16_t, std::endian::native> |
| template<typename T > | |
| using | enum_metadata_name_t = enum_metadata_name<T>::type |
| template<typename T > | |
| using | make_string_t = typename make_string<T>::type |
| type-trait to convert a character to a string type. | |
| template<typename T > | |
| using | 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 | make_promote_t = typename make_promote<T,U>::type |
| template<typename T > | |
| using | make_intmax_t = typename make_intmax<T>::type |
| template<std::size_t N> | |
| using | make_intxx_t = typename make_intxx<N>::type |
| template<std::size_t N> | |
| using | make_uintxx_t = typename make_uintxx<N>::type |
| template<std::size_t N> | |
| using | make_floatxx_t = typename make_floatxx<N>::type |
| template<std::integral L, std::integral... R> | |
| using | common_integer_t = common_integer<L, R...>::type |
| Get an integer type that will fit all values from all template parameters. | |
| template<typename T > | |
| using | remove_cvptr_t = remove_cvptr<T>::type |
| template<typename To , typename From > | |
| using | 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 | use_first_t = use_first<First,Second> |
| template<typename Context > | |
| using | forward_copy_or_ref_t = forward_copy_or_ref<Context>::type |
| template<typename T > | |
| using | variant_decay_t = variant_decay<T>::type |
Enumerations | |
| enum class | audio_block_state { normal , silent , corrupt } |
| enum class | audio_device_state { uninitialized , active , disabled , not_present , unplugged } |
| enum class | audio_direction : unsigned char { none = 0b00 , input = 0b01 , output = 0b10 , bidirectional = 0b11 } |
| enum class | speaker_mapping : uint32_t { none = 0 , front_left = 0x0'0001 , front_right = 0x0'0002 , front_center = 0x0'0004 , low_frequency = 0x0'0008 , back_left = 0x0'0010 , back_right = 0x0'0020 , front_left_of_center = 0x0'0040 , front_right_of_center = 0x0'0080 , back_center = 0x0'0100 , side_left = 0x0'0200 , side_right = 0x0'0400 , top_center = 0x0'0800 , top_front_left = 0x0'1000 , top_front_center = 0x0'2000 , top_front_right = 0x0'4000 , top_back_left = 0x0'8000 , top_back_center = 0x1'0000 , top_back_right = 0x2'0000 , mono_1_0 = front_center , stereo_2_0 = front_left | front_right , stereo_2_1 = stereo_2_0 | low_frequency , stereo_3_0 = stereo_2_0 | front_center , stereo_3_1 = stereo_3_0 | low_frequency , quad_4_0 = stereo_2_0 | back_left | back_right , quad_side_4_0 = stereo_2_0 | side_left | side_right , hexagonal_6_0 = quad_4_0 | front_center | back_center , hexagonal_6_1 = hexagonal_6_0 | low_frequency , octagonal_8_0 = hexagonal_6_0 | side_left | side_right , surround_3_0 = stereo_2_0 | back_center , surround_4_0 = surround_3_0 | front_center , surround_4_1 = surround_4_0 | low_frequency , surround_5_0 = quad_4_0 | front_center , surround_5_1 = surround_5_0 | low_frequency , surround_7_0 = surround_5_0 | side_left | side_right , surround_7_1 = surround_7_0 | low_frequency , surround_9_0 = surround_7_0 | top_front_left | top_front_right , surround_9_1 = surround_9_0 | low_frequency , surround_11_0 = surround_9_0 | front_left_of_center | front_right_of_center , surround_11_1 = surround_11_0 | low_frequency , surround_side_5_0 = quad_side_4_0 | front_center , surround_side_5_1 = surround_side_5_0 | low_frequency , surround_side_6_0 = surround_side_5_0 | back_center , surround_side_6_1 = surround_side_6_0 | low_frequency , surround_side_7_0 = surround_side_5_0 | front_left_of_center | front_right_of_center , surround_side_7_1 = surround_side_7_0 | low_frequency , surround_wide_6_0 = surround_4_0 | front_left_of_center | front_right_of_center , surround_wide_6_1 = surround_wide_6_0 | low_frequency , surround_wide_7_0 = surround_5_0 | front_left_of_center | front_right_of_center , surround_wide_7_1 = surround_wide_7_0 | low_frequency , surround_atmos_5_1_4 = surround_5_1 | top_front_left | top_front_right | top_back_left | top_back_right , surround_atmos_7_1_4 = surround_7_1 | top_front_left | top_front_right | top_back_left | top_back_right } |
| enum class | surround_mode : uint64_t { none = 0 , mono_1_0 = uint64_t{1} << 0 , stereo_2_0 = uint64_t{1} << 1 , stereo_2_1 = uint64_t{1} << 2 , stereo_3_0 = uint64_t{1} << 3 , stereo_3_1 = uint64_t{1} << 4 , quad_4_0 = uint64_t{1} << 5 , quad_side_4_0 = uint64_t{1} << 6 , hexagonal_6_0 = uint64_t{1} << 7 , hexagonal_6_1 = uint64_t{1} << 8 , octagonal_8_0 = uint64_t{1} << 9 , surround_3_0 = uint64_t{1} << 10 , surround_4_0 = uint64_t{1} << 11 , surround_4_1 = uint64_t{1} << 12 , surround_5_0 = uint64_t{1} << 13 , surround_5_1 = uint64_t{1} << 14 , surround_7_0 = uint64_t{1} << 15 , surround_7_1 = uint64_t{1} << 16 , surround_9_0 = uint64_t{1} << 17 , surround_9_1 = uint64_t{1} << 18 , surround_11_0 = uint64_t{1} << 19 , surround_11_1 = uint64_t{1} << 20 , surround_side_5_0 = uint64_t{1} << 21 , surround_side_5_1 = uint64_t{1} << 22 , surround_side_6_0 = uint64_t{1} << 23 , surround_side_6_1 = uint64_t{1} << 24 , surround_side_7_0 = uint64_t{1} << 25 , surround_side_7_1 = uint64_t{1} << 26 , surround_wide_6_0 = uint64_t{1} << 27 , surround_wide_6_1 = uint64_t{1} << 28 , surround_wide_7_0 = uint64_t{1} << 29 , surround_wide_7_1 = uint64_t{1} << 30 , surround_atmos_5_1_4 = uint64_t{1} << 31 , surround_atmos_7_1_4 = uint64_t{1} << 32 } |
| enum class | callback_flags { synchronous = 0x00 , local = 0x01 , main = 0x02 , timer = 0x03 , once = 0x1'00 } |
| enum class | dialog_type { ok , yes_no , yes_no_cancel } |
| enum class | elusive_icon : char32_t { AddressBook = 0xf102 , AddressBookAlt = 0xf101 , Adjust = 0xf104 , AdjustAlt = 0xf103 , Adult = 0xf105 , AlignCenter = 0xf106 , AlignJustify = 0xf107 , AlignLeft = 0xf108 , AlignRight = 0xf109 , ArrowDown = 0xf10a , ArrowLeft = 0xf10b , ArrowRight = 0xf10c , ArrowUp = 0xf10d , Asl = 0xf10e , Asterisk = 0xf10f , Backward = 0xf110 , BanCircle = 0xf111 , Barcode = 0xf112 , Behance = 0xf113 , Bell = 0xf114 , Blind = 0xf115 , Blogger = 0xf116 , Bold = 0xf117 , Book = 0xf118 , Bookmark = 0xf11a , BookmarkEmpty = 0xf119 , Braille = 0xf11b , Briefcase = 0xf11c , Broom = 0xf11d , Brush = 0xf11e , Bulb = 0xf11f , Bullhorn = 0xf120 , Calendar = 0xf122 , CalendarSign = 0xf121 , Camera = 0xf123 , Car = 0xf124 , CaretDown = 0xf125 , CaretLeft = 0xf126 , CaretRight = 0xf127 , CaretUp = 0xf128 , Cc = 0xf129 , Certificate = 0xf12a , Check = 0xf12c , CheckEmpty = 0xf12b , ChevronDown = 0xf12d , ChevronLeft = 0xf12e , ChevronRight = 0xf12f , ChevronUp = 0xf130 , Child = 0xf131 , CircleArrowDown = 0xf132 , CircleArrowLeft = 0xf133 , CircleArrowRight = 0xf134 , CircleArrowUp = 0xf135 , Cloud = 0xf137 , CloudAlt = 0xf136 , Cog = 0xf139 , CogAlt = 0xf138 , Cogs = 0xf13a , Comment = 0xf13c , CommentAlt = 0xf13b , Compass = 0xf13e , CompassAlt = 0xf13d , CreditCard = 0xf13f , Css = 0xf140 , Dashboard = 0xf141 , Delicious = 0xf142 , Deviantart = 0xf143 , Digg = 0xf144 , Download = 0xf146 , DownloadAlt = 0xf145 , Dribbble = 0xf147 , Edit = 0xf148 , Eject = 0xf149 , Envelope = 0xf14b , EnvelopeAlt = 0xf14a , Error = 0xf14d , ErrorAlt = 0xf14c , Eur = 0xf14e , ExclamationSign = 0xf14f , EyeClose = 0xf150 , EyeOpen = 0xf151 , Facebook = 0xf152 , FacetimeVideo = 0xf153 , FastBackward = 0xf154 , FastForward = 0xf155 , Female = 0xf156 , File = 0xf15c , FileAlt = 0xf157 , FileEdit = 0xf159 , FileEditAlt = 0xf158 , FileNew = 0xf15b , FileNewAlt = 0xf15a , Film = 0xf15d , Filter = 0xf15e , Fire = 0xf15f , Flag = 0xf161 , FlagAlt = 0xf160 , Flickr = 0xf162 , Folder = 0xf166 , FolderClose = 0xf163 , FolderOpen = 0xf164 , FolderSign = 0xf165 , font = 0xf167 , fontsize = 0xf168 , Fork = 0xf169 , Forward = 0xf16b , ForwardAlt = 0xf16a , Foursquare = 0xf16c , Friendfeed = 0xf16e , FriendfeedRect = 0xf16d , Fullscreen = 0xf16f , Gbp = 0xf170 , Gift = 0xf171 , Github = 0xf173 , GithubText = 0xf172 , Glass = 0xf174 , Glasses = 0xf175 , Globe = 0xf177 , GlobeAlt = 0xf176 , Googleplus = 0xf178 , Graph = 0xf17a , GraphAlt = 0xf179 , Group = 0xf17c , GroupAlt = 0xf17b , Guidedog = 0xf17d , HandDown = 0xf17e , HandLeft = 0xf17f , HandRight = 0xf180 , HandUp = 0xf181 , Hdd = 0xf182 , Headphones = 0xf183 , HearingImpaired = 0xf184 , Heart = 0xf187 , HeartAlt = 0xf185 , HeartEmpty = 0xf186 , Home = 0xf189 , HomeAlt = 0xf188 , Hourglass = 0xf18a , Idea = 0xf18c , IdeaAlt = 0xf18b , Inbox = 0xf18f , InboxAlt = 0xf18d , InboxBox = 0xf18e , IndentLeft = 0xf190 , IndentRight = 0xf191 , InfoCircle = 0xf192 , Instagram = 0xf193 , IphoneHome = 0xf194 , Italic = 0xf195 , Key = 0xf196 , Laptop = 0xf198 , LaptopAlt = 0xf197 , Lastfm = 0xf199 , Leaf = 0xf19a , Lines = 0xf19b , Link = 0xf19c , Linkedin = 0xf19d , List = 0xf19f , ListAlt = 0xf19e , Livejournal = 0xf1a0 , Lock = 0xf1a2 , LockAlt = 0xf1a1 , Magic = 0xf1a3 , Magnet = 0xf1a4 , Male = 0xf1a5 , MapMarker = 0xf1a7 , MapMarkerAlt = 0xf1a6 , Mic = 0xf1a9 , MicAlt = 0xf1a8 , Minus = 0xf1ab , MinusSign = 0xf1aa , Move = 0xf1ac , Music = 0xf1ad , Myspace = 0xf1ae , Network = 0xf1af , Off = 0xf1b0 , Ok = 0xf1b3 , OkCircle = 0xf1b1 , OkSign = 0xf1b2 , Opensource = 0xf1b4 , PaperClip = 0xf1b6 , PaperClipAlt = 0xf1b5 , Path = 0xf1b7 , Pause = 0xf1b9 , PauseAlt = 0xf1b8 , Pencil = 0xf1bb , PencilAlt = 0xf1ba , Person = 0xf1bc , Phone = 0xf1be , PhoneAlt = 0xf1bd , Photo = 0xf1c0 , PhotoAlt = 0xf1bf , Picasa = 0xf1c1 , Picture = 0xf1c2 , Pinterest = 0xf1c3 , Plane = 0xf1c4 , Play = 0xf1c7 , PlayAlt = 0xf1c5 , PlayCircle = 0xf1c6 , Plurk = 0xf1c9 , PlurkAlt = 0xf1c8 , Plus = 0xf1cb , PlusSign = 0xf1ca , Podcast = 0xf1cc , Print = 0xf1cd , Puzzle = 0xf1ce , Qrcode = 0xf1cf , Question = 0xf1d1 , QuestionSign = 0xf1d0 , QuoteAlt = 0xf1d2 , QuoteRight = 0xf1d4 , QuoteRightAlt = 0xf1d3 , Quotes = 0xf1d5 , Random = 0xf1d6 , Record = 0xf1d7 , Reddit = 0xf1d8 , Redux = 0xf1d9 , Refresh = 0xf1da , Remove = 0xf1dd , RemoveCircle = 0xf1db , RemoveSign = 0xf1dc , Repeat = 0xf1df , RepeatAlt = 0xf1de , ResizeFull = 0xf1e0 , ResizeHorizontal = 0xf1e1 , ResizeSmall = 0xf1e2 , ResizeVertical = 0xf1e3 , ReturnKey = 0xf1e4 , Retweet = 0xf1e5 , ReverseAlt = 0xf1e6 , Road = 0xf1e7 , Rss = 0xf1e8 , Scissors = 0xf1e9 , Screen = 0xf1eb , ScreenAlt = 0xf1ea , Screenshot = 0xf1ec , Search = 0xf1ee , SearchAlt = 0xf1ed , Share = 0xf1f0 , ShareAlt = 0xf1ef , ShoppingCart = 0xf1f2 , ShoppingCartSign = 0xf1f1 , Signal = 0xf1f3 , Skype = 0xf1f4 , Slideshare = 0xf1f5 , Smiley = 0xf1f7 , SmileyAlt = 0xf1f6 , Soundcloud = 0xf1f8 , Speaker = 0xf1f9 , Spotify = 0xf1fa , Stackoverflow = 0xf1fb , Star = 0xf1fe , StarAlt = 0xf1fc , StarEmpty = 0xf1fd , StepBackward = 0xf1ff , StepForward = 0xf200 , Stop = 0xf202 , StopAlt = 0xf201 , Stumbleupon = 0xf203 , Tag = 0xf204 , Tags = 0xf205 , Tasks = 0xf206 , TextHeight = 0xf207 , TextWidth = 0xf208 , Th = 0xf20b , ThLarge = 0xf209 , ThList = 0xf20a , ThumbsDown = 0xf20c , ThumbsUp = 0xf20d , Time = 0xf20f , TimeAlt = 0xf20e , Tint = 0xf210 , Torso = 0xf211 , Trash = 0xf213 , TrashAlt = 0xf212 , Tumblr = 0xf214 , Twitter = 0xf215 , UniversalAccess = 0xf216 , Unlock = 0xf218 , UnlockAlt = 0xf217 , Upload = 0xf219 , Usd = 0xf21a , User = 0xf21b , Viadeo = 0xf21c , Video = 0xf21f , VideoAlt = 0xf21d , VideoChat = 0xf21e , ViewMode = 0xf220 , Vimeo = 0xf221 , Vkontakte = 0xf222 , VolumeDown = 0xf223 , VolumeOff = 0xf224 , VolumeUp = 0xf225 , W3c = 0xf226 , WarningSign = 0xf227 , Website = 0xf229 , WebsiteAlt = 0xf228 , Wheelchair = 0xf22a , Wordpress = 0xf22b , Wrench = 0xf22d , WrenchAlt = 0xf22c , Youtube = 0xf22e , ZoomIn = 0xf22f , ZoomOut = 0xf230 } |
| enum class | font_weight { Thin , ExtraLight , Light , Regular , Medium , SemiBold , Bold , ExtraBold , Black , ExtraBlack } |
| enum class | hikogui_icon : char32_t { MinimizeWindow = 0xf301 , MaximizeWindowMS = 0xf302 , RestoreWindowMS = 0xf303 , CloseWindow = 0xf304 , RestoreWindowMacOS = 0xf305 , MaximizeWindowMacOS = 0xf306 , none_0_0 = 0xf3c0 , mono_1_0 = 0xf3c1 , mono_1_1 = 0xf3c2 , stereo_2_0 = 0xf3c3 , stereo_2_1 = 0xf3c4 , stereo_3_0 = 0xf3c5 , stereo_3_1 = 0xf3c6 , surround_3_0 = 0xf3c7 , surround_3_1 = 0xf3c8 , surround_4_0 = 0xf3c9 , surround_4_1 = 0xf3ca , surround_5_0 = 0xf3cb , surround_5_1 = 0xf3cc , surround_7_0 = 0xf3cd , surround_7_1 = 0xf3ce , surround_9_0 = 0xf3cf , surround_9_1 = 0xf3d0 , surround_11_0 = 0xf3d1 , surround_11_1 = 0xf3d2 , surround_side_5_0 = 0xf3d3 , surround_side_5_1 = 0xf3d4 , surround_side_6_0 = 0xf3d5 , surround_side_6_1 = 0xf3d6 , surround_side_7_0 = 0xf3d7 , surround_side_7_1 = 0xf3d8 , surround_wide_6_0 = 0xf3d9 , surround_wide_6_1 = 0xf3da , surround_wide_7_0 = 0xf3db , surround_wide_7_1 = 0xf3dc , quad_4_0 = 0xf3dd , quad_4_1 = 0xf3de , quad_side_4_0 = 0xf3df , quad_side_4_1 = 0xf3e0 , hexagonal_6_0 = 0xf3e1 , hexagonal_6_1 = 0xf3e2 , octagonal_8_0 = 0xf3e3 , octagonal_8_1 = 0xf3e4 , surround_atmos_5_1_4 = 0xf3e5 , surround_atmos_7_1_4 = 0xf3e6 } |
| enum class | vertical_alignment : uint8_t { vertical_alignment::none = 0 , vertical_alignment::top = 1 , vertical_alignment::middle = 2 , vertical_alignment::bottom = 3 } |
| Vertical alignment. More... | |
| enum class | horizontal_alignment : uint8_t { horizontal_alignment::none = 0 , horizontal_alignment::flush = 1 , horizontal_alignment::left = 2 , horizontal_alignment::center = 3 , horizontal_alignment::justified = 4 , horizontal_alignment::right = 5 } |
| Horizontal alignment. More... | |
| enum class | gfx_surface_state { no_window , has_window , has_device , has_swapchain } |
| enum class | gfx_surface_loss { none , swapchain_lost , device_lost , window_lost } |
| enum class | subpixel_orientation { unknown , horizontal_rgb , horizontal_bgr , vertical_rgb , vertical_bgr } |
| The orientation of the RGB sub-pixels of and LCD/LED panel. More... | |
| enum class | gui_window_size { normal , minimized , maximized , fullscreen } |
| enum class | hitbox_type : uint8_t { outside , _default , button , scroll_bar , text_edit , move_area , bottom_resize_border , top_resize_border , left_resize_border , right_resize_border , bottom_left_resize_corner , bottom_right_resize_corner , top_left_resize_corner , top_right_resize_corner , application_icon } |
| enum class | keyboard_focus_direction { here , backward , forward } |
| The keyboard focus group used for finding a widget that will accept a particular focus. More... | |
| enum class | keyboard_focus_group { normal = 1 , menu = 2 , toolbar = 4 , mouse = 8 , all = normal | menu | toolbar | mouse } |
| The keyboard focus group used for finding a widget that will accept a particular focus. More... | |
| enum class | keyboard_modifiers : uint8_t { none = 0x00 , shift = 0x01 , control = 0x02 , alt = 0x04 , super = 0x08 } |
| Key modification keys pressed at the same time as another key. More... | |
| enum class | keyboard_state : uint8_t { idle = 0x00 , caps_lock = 0x01 , scroll_lock = 0x02 , num_lock = 0x04 } |
| enum class | keyboard_virtual_key : uint8_t { nul = 0 , A = 'a' , B = 'b' , C = 'c' , D = 'd' , E = 'e' , F = 'f' , G = 'g' , H = 'h' , I = 'i' , J = 'j' , K = 'k' , L = 'l' , M = 'm' , N = 'n' , O = 'o' , P = 'p' , Q = 'q' , R = 'r' , S = 's' , T = 't' , U = 'u' , V = 'v' , W = 'w' , X = 'x' , Y = 'y' , Z = 'z' , _0 = '0' , _1 = '1' , _2 = '2' , _3 = '3' , _4 = '4' , _5 = '5' , _6 = '6' , _7 = '7' , _8 = '8' , _9 = '9' , plus = '+' , minus = '-' , star = '*' , slash = '/' , percent = '' , tilde = '~' , ampersant = '&' , pipe = '|' , caret = '^' , less = '<' , equal = '=' , greater = '>' , open_parentheses = '(' , close_parentheses = ')' , open_bracket = '[' , close_bracket = ']' , open_brace = '{' , close_brace = '}' , period = '.' , comma = ',' , colon = ':' , semi_colon = ';' , bang = '!' , question = '?' , space = ' ' , tab = '\t' , enter = '\n' , backtick = '`' , quote = '\'' , double_quote = '"' , at = '@' , hash = '#' , dollar = '$' , underscore = '_' , backslash = '\\' , F1 = 'A' , F2 = 'B' , F3 = 'C' , F4 = 'D' , F5 = 'E' , F6 = 'F' , F7 = 'G' , F8 = 'H' , F9 = 'I' , F10 = 'J' , F11 = 'K' , F12 = 'L' , F13 = 'M' , F14 = 'N' , F15 = 'O' , F16 = 'P' , F17 = 'Q' , F18 = 'R' , F19 = 'S' , F20 = 'T' , F21 = 'U' , F22 = 'V' , F23 = 'W' , F24 = 'X' , home = 0x02 , end = 0x03 , backspace = 0x08 , clear = 0x0c , insert = 0x1a , escape = 0x1b , _delete = 0x7f , left = 0x80 , right , up , down , page_up , page_down , menu , print_screen , pause_break , sysmenu , media_next_track , media_prev_track , media_stop , media_play_pause , volume_mute , volume_up , volume_down , browser_back , browser_forward , browser_home , browser_refresh , browser_stop , browser_search , browser_favorites } |
| enum class | mouse_cursor { None , Default , TextEdit , Button } |
| enum class | theme_mode { light , dark } |
| enum class | network_event : uint16_t { none = 0 , read = 0x0001 , write = 0x0002 , close = 0x0004 , connect = 0x0008 , accept = 0x0010 , out_of_band = 0x0020 , qos = 0x0040 , group_qos = 0x0080 , address_list_change = 0x0100 , routing_interface_changed = 0x0200 } |
| enum class | network_error : uint8_t { success = 0 , af_not_supported , connection_refused , network_unreachable , no_buffers , timeout , network_down , connection_reset , connection_aborted } |
| enum class | graphic_character_t { none = 0x00 , exclamation_mark = 0x01 , double_quote = 0x02 , hash = 0x03 , dollar = 0x04 , percent = 0x05 , ampersand = 0x06 , single_quote = 0x07 , open_paren = 0x08 , close_paren = 0x09 , star = 0x0a , plus = 0x0b , comma = 0x0c , minus = 0x0d , dot = 0x0e , slash = 0x0f , colon = 0x10 , semi_colon = 0x11 , less_than = 0x12 , equal = 0x13 , greater_than = 0x14 , question_mark = 0x15 , open_bracket = 0x16 , back_slash = 0x17 , close_bracket = 0x18 , carret = 0x19 , underscore = 0x1a , back_quote = 0x1b , open_brace = 0x1c , pipe = 0x1d , close_brace = 0x1e , tilde = 0x1f } |
| enum class | on_overflow_t { Throw , Saturate , Assert , Axiom } |
| enum class | semantic_text_style : unsigned char { label , small_label , warning , error , help , placeholder , link } |
| enum class | text_decoration { None , Underline , WavyUnderline , StrikeThrough } |
| Describes how a grapheme should be underlined when rendering the text. More... | |
| enum class | text_phrasing { regular , emphesis , strong , code , abbreviation , bold , italic , citation , keyboard , mark , math , example , unarticulated } |
| enum class | text_phrasing_mask : uint16_t { regular = 1 << to_underlying(text_phrasing::regular) , emphesis = 1 << to_underlying(text_phrasing::emphesis) , strong = 1 << to_underlying(text_phrasing::strong) , code = 1 << to_underlying(text_phrasing::code) , abbreviation = 1 << to_underlying(text_phrasing::abbreviation) , bold = 1 << to_underlying(text_phrasing::bold) , italic = 1 << to_underlying(text_phrasing::italic) , citation = 1 << to_underlying(text_phrasing::citation) , keyboard = 1 << to_underlying(text_phrasing::keyboard) , mark = 1 << to_underlying(text_phrasing::mark) , math = 1 << to_underlying(text_phrasing::math) , example = 1 << to_underlying(text_phrasing::example) , unarticulated = 1 << to_underlying(text_phrasing::unarticulated) , all } |
| enum class | tokenizer_name_t : uint8_t { NotAssigned , ErrorInvalidCharacter , ErrorEOTInBlockComment , ErrorEOTInString , ErrorLFInString , Name , StringLiteral , IntegerLiteral , DateLiteral , TimeLiteral , FloatLiteral , Operator , End } |
| enum class | unicode_bidi_bracket_type : uint8_t { n , o , c , m } |
| enum class | unicode_bidi_class : uint8_t { unknown = 0 , L = 1 , R = 2 , AL = 3 , EN = 4 , ES = 5 , ET = 6 , AN = 7 , CS = 8 , NSM = 9 , BN = 10 , B = 11 , S = 12 , WS = 13 , ON = 14 , LRE , LRO , RLE , RLO , PDF , LRI , RLI , FSI , PDI } |
| Bidirectional class Unicode Standard Annex #9: https://unicode.org/reports/tr9/. More... | |
| enum class | unicode_break_opportunity : uint8_t { no , yes , mandatory , unassigned } |
| enum class | unicode_decomposition_type : uint8_t { none , canonical , font , noBreak , initial , medial , _final , isolated , circle , super , sub , fraction , vertical , wide , narrow , small , square , compat } |
| enum class | unicode_east_asian_width { A , F , H , N , Na , W } |
| enum class | unicode_general_category : uint8_t { Lu , Ll , Lt , Lm , Lo , Mn , Mc , Me , Nd , Nl , No , Pc , Pd , Ps , Pe , Pi , Pf , Po , Sm , Sc , Sk , So , Zs , Zl , Zp , Cc , Cf , Cs , Co , Cn } |
| enum class | unicode_grapheme_cluster_break : uint8_t { Other , CR , LF , Control , Extend , ZWJ , Regional_Indicator , Prepend , SpacingMark , L , V , T , LV , LVT , Extended_Pictographic } |
| enum class | unicode_line_break_class : uint8_t { BK , CR , LF , CM , NL , SG , WJ , ZW , GL , SP , ZWJ , B2 , BA , BB , HY , CB , CL , CP , EX , IN , NS , OP , QU , IS , NU , PO , PR , SY , AI , AL , CJ , EB , EM , H2 , H3 , HL , ID , JL , L , JV , V , JT , T , RI , SA , XX } |
| Unicode line break class. More... | |
| enum class | unicode_normalization_mask { decompose_canonical = 1 << to_underlying(unicode_decomposition_type::canonical) , decompose_font = 1 << to_underlying(unicode_decomposition_type::font) , decompose_noBreak = 1 << to_underlying(unicode_decomposition_type::noBreak) , decompose_initial = 1 << to_underlying(unicode_decomposition_type::initial) , decompose_medial = 1 << to_underlying(unicode_decomposition_type::medial) , decompose_final = 1 << to_underlying(unicode_decomposition_type::_final) , decompose_isolated = 1 << to_underlying(unicode_decomposition_type::isolated) , decompose_circle = 1 << to_underlying(unicode_decomposition_type::circle) , decompose_super = 1 << to_underlying(unicode_decomposition_type::super) , decompose_sub = 1 << to_underlying(unicode_decomposition_type::sub) , decompose_fraction = 1 << to_underlying(unicode_decomposition_type::fraction) , decompose_vertical = 1 << to_underlying(unicode_decomposition_type::vertical) , decompose_wide = 1 << to_underlying(unicode_decomposition_type::wide) , decompose_narrow = 1 << to_underlying(unicode_decomposition_type::narrow) , decompose_small = 1 << to_underlying(unicode_decomposition_type::small) , decompose_square = 1 << to_underlying(unicode_decomposition_type::square) , decompose_compat = 1 << to_underlying(unicode_decomposition_type::compat) , decompose_control = 1 << 25 , compose_CRLF = 1 << 26 , decompose_newline_to_PS = 1 << 27 , decompose_newline_to_LF = 1 << 28 , decompose_newline_to_CRLF = 1 << 29 , decompose_newline_to_SP = 1 << 30 , decompose_newline = decompose_newline_to_PS | decompose_newline_to_LF | decompose_newline_to_CRLF | decompose_newline_to_SP , NFD = decompose_canonical , NFKD } |
| enum class | unicode_script : uint8_t { Zzzz , Common , Latin , Greek , Cyrillic , Armenian , Hebrew , Arabic , Syriac , Thaana , Devanagari , Bengali , Gurmukhi , Gujarati , Oriya , Tamil , Telugu , Kannada , Malayalam , Sinhala , Thai , Lao , Tibetan , Myanmar , Georgian , Hangul , Ethiopic , Cherokee , Canadian_Aboriginal , Ogham , Runic , Khmer , Mongolian , Hiragana , Katakana , Bopomofo , Han , Yi , Old_Italic , Gothic , Deseret , Inherited , Tagalog , Hanunoo , Buhid , Tagbanwa , Limbu , Tai_Le , Linear_B , Ugaritic , Shavian , Osmanya , Cypriot , Braille , Buginese , Coptic , New_Tai_Lue , Glagolitic , Tifinagh , Syloti_Nagri , Old_Persian , Kharoshthi , Balinese , Cuneiform , Phoenician , Phags_Pa , Nko , Sundanese , Lepcha , Ol_Chiki , Vai , Saurashtra , Kayah_Li , Rejang , Lycian , Carian , Lydian , Cham , Tai_Tham , Tai_Viet , Avestan , Egyptian_Hieroglyphs , Samaritan , Lisu , Bamum , Javanese , Meetei_Mayek , Imperial_Aramaic , Old_South_Arabian , Inscriptional_Parthian , Inscriptional_Pahlavi , Old_Turkic , Kaithi , Batak , Brahmi , Mandaic , Chakma , Meroitic_Cursive , Meroitic_Hieroglyphs , Miao , Sharada , Sora_Sompeng , Takri , Caucasian_Albanian , Bassa_Vah , Duployan , Elbasan , Grantha , Pahawh_Hmong , Khojki , Linear_A , Mahajani , Manichaean , Mende_Kikakui , Modi , Mro , Old_North_Arabian , Nabataean , Palmyrene , Pau_Cin_Hau , Old_Permic , Psalter_Pahlavi , Siddham , Khudawadi , Tirhuta , Warang_Citi , Ahom , Anatolian_Hieroglyphs , Hatran , Multani , Old_Hungarian , SignWriting , Adlam , Bhaiksuki , Marchen , Newa , Osage , Tangut , Masaram_Gondi , Nushu , Soyombo , Zanabazar_Square , Dogra , Gunjala_Gondi , Makasar , Medefaidrin , Hanifi_Rohingya , Sogdian , Old_Sogdian , Elymaic , Nandinagari , Nyiakeng_Puachue_Hmong , Wancho , Chorasmian , Dives_Akuru , Khitan_Small_Script , Yezidi , Cypro_Minoan , Old_Uyghur , Tangsa , Toto , Vithkuqi , Afaka , Arabic_Nastaliq , Blissymbols , Cirth , Cyrillic_Old_Church_Slavonic , Egyptian_Demotic , Egyptian_Hieratic , Han_Bopomofo , Han_Simplified , Han_Traditional , Indus , Jamo , Japanese , Japanese_Syllabaries , Jurchen , Kawi , Khitan_Large_Script , Khutsuri , Korean , Kpelle , Latin_Fraktur , Latin_Gaelic , Leke , Loma , Mayan_Hieroglyphs , Moon , Nag_Mundari , Naxi_Dongba , Nakhi_Geba , Proto_Cuneiform , Proto_Elamite , Book_Pahlavi , Kligon , Proto_Sinaitic , Private_Use_aa , Private_Use_bx , Ranjana , Rongorongo , Sarati , Shuishu , Sunuwar , Symbols , Symbols_Emoji , Syriac_Estrangelo , Syriac_Western , Syriac_Eastern , Tengwar , Unwritten_Documents , Visible_Speech , Woleai , Mathematical_Notation , Byzantine_Music , Music } |
| enum class | unicode_sentence_break_property : uint8_t { Other , CR , LF , Extend , Sep , Format , Sp , Lower , Upper , OLetter , Numeric , ATerm , SContinue , STerm , Close } |
| enum class | unicode_word_break_property : uint8_t { Other , CR , LF , Newline , Extend , ZWJ , Regional_Indicator , Format , Katakana , Hebrew_Letter , ALetter , Single_Quote , Double_Quote , MidNumLet , MidLetter , MidNum , Numeric , ExtendNumLet , WSegSpace } |
| enum class | operating_system { windows = HI_OS_WINDOWS , macos = HI_OS_MACOS , mobile = HI_OS_MOBILE , other = HI_OS_OTHER , current = HI_OPERATING_SYSTEM } |
| enum class | compiler { msvc = HI_CC_MSVC , gcc = HI_CC_GCC , clang = HI_CC_CLANG , current = HI_COMPILER } |
| enum class | processor { x86 = HI_CPU_X86 , x64 = HI_CPU_X64 , arm = HI_CPU_ARM , arm64 = HI_CPU_ARM64 , unknown = HI_CPU_UNKNOWN , current = HI_PROCESSOR } |
Functions | |
| template<typename T , typename U , typename F > | |
| T | transform (const U &input, F operation) |
| Transform an input container to the output container. | |
| template<typename T , std::size_t N, typename F > | |
| constexpr std::array< T, N > | generate_array (F operation) |
| Generate data in an array. | |
| template<typename It > | |
| constexpr It | unordered_remove (It first, It last, It element) |
| Remove element from a container. | |
| template<typename It , typename UnaryPredicate > | |
| constexpr It | rfind_if (It const first, It const last, UnaryPredicate predicate) |
| template<typename It , typename UnaryPredicate > | |
| constexpr It | rfind_if_not (It const first, It const last, UnaryPredicate predicate) |
| template<typename It , typename T > | |
| constexpr It | rfind (It const first, It const last, T const &value) |
| template<typename It , typename ItAny > | |
| constexpr It | find_any (It data_first, It data_last, ItAny value_first, ItAny value_last) noexcept |
| Find the first occurrence of an value in a data. | |
| template<typename ConstIt , typename It , typename UnaryPredicate > | |
| constexpr It | find_cluster (ConstIt last, It start, UnaryPredicate predicate) |
| Find the start of the current cluster. | |
| template<typename ConstIt , typename It , typename UnaryPredicate > | |
| constexpr It | rfind_cluster (ConstIt first, It start, UnaryPredicate predicate) |
| Find the start of the current cluster. | |
| template<typename ConstIt , typename It , typename UnaryPredicate > | |
| constexpr std::pair< It, It > | bifind_cluster (ConstIt first, ConstIt last, It start, UnaryPredicate predicate) |
| Find the begin and end of the current cluster. | |
| template<typename It , typename S , typename F > | |
| void | for_each_cluster (It first, It last, S IsClusterSeperator, F Function) |
| template<typename InputIt1 , typename InputIt2 , typename BinaryPredicate > | |
| std::pair< InputIt1, InputIt2 > | rmismatch (InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, BinaryPredicate predicate) noexcept |
| template<typename InputIt1 , typename InputIt2 > | |
| std::pair< InputIt1, InputIt2 > | rmismatch (InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2) noexcept |
| template<typename T > | |
| T | smoothstep (T x) noexcept |
| template<typename T > | |
| T | inverse_smoothstep (T x) |
| auto | shuffle_by_index (auto first, auto last, auto indices_first, auto indices_last, auto index_op) noexcept |
| Shuffle a container based on a list of indices. | |
| auto | shuffle_by_index (auto first, auto last, auto indices_first, auto indices_last) noexcept |
| Shuffle a container based on a list of indices. | |
| template<typename DataIt , typename ValueIt > | |
| DataIt | front_strip (DataIt data_first, DataIt data_last, ValueIt value_first, ValueIt value_last) noexcept |
| Strip data from the front side. | |
| template<typename DataIt , typename ValueIt > | |
| DataIt | back_strip (DataIt data_first, DataIt data_last, ValueIt value_first, ValueIt value_last) noexcept |
| Strip data from the back side. | |
| template<std::endian Endian = std::endian::native, typename T , std::unsigned_integral Key> | |
| constexpr T * | fast_lower_bound (std::span< T > table, Key const &key) noexcept |
| The fast lower bound algorithm. | |
| template<std::endian Endian = std::endian::native, typename T , std::unsigned_integral Key> | |
| constexpr T * | fast_binary_search_eq (std::span< T > table, Key const &key) noexcept |
| Search for the item that is equal to the key. | |
| template<std::size_t I, typename FirstArg , typename... Args> | |
| constexpr decltype(auto) | get_argument_impl (FirstArg &&first_arg, Args &&...args) noexcept |
| template<std::size_t I, typename... Args> | |
| constexpr decltype(auto) | get_argument (Args &&...args) noexcept |
| template<typename... Args> | |
| constexpr decltype(auto) | get_last_argument (Args &&...args) noexcept |
| template<typename T > | |
| T | fetch_max (std::atomic< T > &lhs, T rhs, std::memory_order order) noexcept |
| Lock-free fetch-then-max operation on an atomic. | |
| template<typename T > | |
| T | fetch_min (std::atomic< T > &lhs, T rhs, std::memory_order order) noexcept |
| Lock-free fetch-then-min operation on an atomic. | |
| constexpr std::string_view | to_string (audio_device_state const &rhs) noexcept |
| constexpr audio_direction | operator& (audio_direction const &lhs, audio_direction const &rhs) noexcept |
| constexpr audio_direction | operator| (audio_direction const &lhs, audio_direction const &rhs) noexcept |
| constexpr bool | to_bool (audio_direction const &rhs) noexcept |
| bool | win32_use_extensible (audio_stream_format x) noexcept |
| WAVEFORMATEXTENSIBLE | audio_stream_format_to_win32 (audio_stream_format stream_format, bool extensible) noexcept |
| audio_stream_format | audio_stream_format_from_win32 (WAVEFORMATEXTENSIBLE const &wave_format) |
| audio_stream_format | audio_stream_format_from_win32 (WAVEFORMATEX const &wave_format) |
| constexpr bool | to_bool (speaker_mapping const &rhs) noexcept |
| constexpr unsigned int | popcount (speaker_mapping const &rhs) noexcept |
| constexpr speaker_mapping | operator| (speaker_mapping const &lhs, speaker_mapping const &rhs) noexcept |
| constexpr speaker_mapping | operator& (speaker_mapping const &lhs, speaker_mapping const &rhs) noexcept |
| constexpr speaker_mapping & | operator|= (speaker_mapping &lhs, speaker_mapping const &rhs) noexcept |
| constexpr speaker_mapping & | operator&= (speaker_mapping &lhs, speaker_mapping const &rhs) noexcept |
| std::string | to_string (speaker_mapping rhs) noexcept |
| speaker_mapping | speaker_mapping_from_win32 (DWORD from) |
| DWORD | speaker_mapping_to_win32 (speaker_mapping from) noexcept |
| constexpr surround_mode | operator& (surround_mode const &lhs, surround_mode const &rhs) noexcept |
| constexpr surround_mode | operator| (surround_mode const &lhs, surround_mode const &rhs) noexcept |
| constexpr surround_mode & | operator|= (surround_mode &lhs, surround_mode const &rhs) noexcept |
| constexpr bool | to_bool (surround_mode const &rhs) noexcept |
| constexpr speaker_mapping | to_speaker_mapping (surround_mode const &rhs) noexcept |
| generator< surround_mode > | enumerate_surround_modes () noexcept |
| constexpr std::string_view | to_string_view_one (surround_mode const &mode) noexcept |
| constexpr std::string | to_string (surround_mode const &mask) noexcept |
| template<typename T > | |
| constexpr std::array< T, 2 > | bezierToPolynomial (T P1, T P2) noexcept |
| template<typename T > | |
| constexpr std::array< T, 3 > | bezierToPolynomial (T P1, T C, T P2) noexcept |
| template<typename T > | |
| constexpr std::array< T, 4 > | bezierToPolynomial (T P1, T C1, T C2, T P2) noexcept |
| template<int D> | |
| constexpr geo::point< float, D > | bezierPointAt (geo::point< float, D > P1, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::point< float, D > | bezierPointAt (geo::point< float, D > P1, geo::point< float, D > C, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::point< float, D > | bezierPointAt (geo::point< float, D > P1, geo::point< float, D > C1, geo::point< float, D > C2, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< float, D > | bezierTangentAt (geo::point< float, D > P1, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< float, D > | bezierTangentAt (geo::point< float, D > P1, geo::point< float, D > C, geo::point< float, D > P2, float t) noexcept |
| template<int D> | |
| constexpr geo::vector< float, D > | bezierTangentAt (geo::point< float, D > P1, geo::point< float, D > C1, geo::point< float, D > C2, geo::point< float, D > P2, float t) noexcept |
| constexpr results< float, 1 > | bezierFindT (float P1, float P2, float x) noexcept |
| constexpr results< float, 2 > | bezierFindT (float P1, float C, float P2, float x) noexcept |
| hi_force_inline constexpr results< float, 3 > | bezierFindT (float P1, float C1, float C2, float P2, float x) noexcept |
| hi_force_inline constexpr results< float, 1 > | bezierFindTForNormalsIntersectingPoint (point2 P1, point2 P2, point2 P) noexcept |
| Find t on the line P1->P2 which is closest to P. | |
| hi_force_inline constexpr results< float, 3 > | bezierFindTForNormalsIntersectingPoint (point2 P1, point2 C, point2 P2, point2 P) noexcept |
| Find t on the curve P1->C->P2 which is closest to P. | |
| constexpr results< float, 1 > | bezierFindX (point2 P1, point2 P2, float y) noexcept |
| constexpr results< float, 2 > | bezierFindX (point2 P1, point2 C, point2 P2, float y) noexcept |
| constexpr results< float, 3 > | bezierFindX (point2 P1, point2 C1, point2 C2, point2 P2, float y) noexcept |
| float | bezierFlatness (point2 P1, point2 P2) noexcept |
| float | bezierFlatness (point2 P1, point2 C, point2 P2) noexcept |
| float | bezierFlatness (point2 P1, point2 C1, point2 C2, point2 P2) noexcept |
| std::pair< point2, point2 > | parallelLine (point2 P1, point2 P2, float distance) noexcept |
| std::optional< point2 > | getIntersectionPoint (point2 A1, point2 A2, point2 B1, point2 B2) noexcept |
| std::optional< point2 > | getExtrapolatedIntersectionPoint (point2 A1, point2 A2, point2 B1, point2 B2) noexcept |
| std::vector< bezier_curve > | makeContourFromPoints (std::vector< bezier_point >::const_iterator first, std::vector< bezier_point >::const_iterator last) noexcept |
| std::vector< bezier_curve > | makeInverseContour (std::vector< bezier_curve > const &contour) noexcept |
| std::vector< bezier_curve > | makeParallelContour (std::vector< bezier_curve > const &contour, float offset, hi::line_join_style line_join_style, float tolerance) noexcept |
| void | fill (pixmap_span< uint8_t > image, std::vector< bezier_curve > const &curves) noexcept |
| Fill a linear gray scale image by filling a curve with anti-aliasing. | |
| void | fill (pixmap_span< sdf_r8 > image, std::vector< bezier_curve > const &curves) noexcept |
| Fill a signed distance field image from the given contour. | |
| bool | get_bit (std::span< std::byte const > buffer, std::size_t &index) noexcept |
| Read a single bit from span of bytes Bits are ordered LSB first. | |
| std::size_t | get_bits (std::span< std::byte const > buffer, std::size_t &index, std::size_t length) noexcept |
| Read a bits from of span of bytes Bits are ordered LSB first. | |
| bstring | to_bstring (std::string_view src) noexcept |
| bstring | to_bstring (std::integral auto... args) noexcept |
| constexpr callback_flags | operator| (callback_flags const &lhs, callback_flags const &rhs) noexcept |
| constexpr bool | is_once (callback_flags const &rhs) noexcept |
| constexpr bool | is_synchronous (callback_flags const &rhs) noexcept |
| constexpr bool | is_local (callback_flags const &rhs) noexcept |
| constexpr bool | is_main (callback_flags const &rhs) noexcept |
| constexpr bool | is_timer (callback_flags const &rhs) noexcept |
| datum | decode_BON8 (std::span< const std::byte > buffer) |
| Decode BON8 message from buffer. | |
| datum | decode_BON8 (bstring const &buffer) |
| Decode BON8 message from buffer. | |
| datum | decode_BON8 (bstring_view buffer) |
| Decode BON8 message from buffer. | |
| bstring | encode_BON8 (datum const &value) |
| Encode a value to a BON8 message. | |
| bstring | gzip_decompress (std::span< std::byte const > bytes, std::size_t max_size=0x01000000) |
| bstring | gzip_decompress (std::filesystem::path const &path, std::size_t max_size=0x01000000) |
| bstring | inflate (std::span< std::byte const > bytes, std::size_t &offset, std::size_t max_size=0x0100 '0000) |
Inflate compressed data using the deflate algorithm bytes should include at least 32 bit of trailer, for the overflow check which will slightly overrun the actual compressed data for performance reasons. | |
| datum | parse_JSON (std::string_view text) |
| Parse a JSON string. | |
| datum | parse_JSON (std::string const &text) |
| datum | parse_JSON (char const *text) |
| datum | parse_JSON (std::filesystem::path const &path) |
| Parse a JSON string. | |
| std::string | format_JSON (datum const &root) |
| Dump an datum object into a JSON string. | |
| bstring | zlib_decompress (std::span< std::byte const > bytes, std::size_t max_size=0x01000000) |
| bstring | zlib_decompress (std::filesystem::path const &path, std::size_t max_size=0x01000000) |
| template<typename It > | |
| generator< cmdln_option > | command_line_parser (It first, It last, std::string_view options_with_arguments) |
| A POSIX command line parser. | |
| void | console_start () noexcept |
| Initialize the console. | |
| void | console_output (std::string_view text, std::ostream &output=std::cout) noexcept |
| Output text to the console. | |
| detail::counter * | get_global_counter_if (std::string const &name) |
| std::pair< int, char ** > | crt_start (int argc, char **argv, void *instance, int show_cmd) |
| Start the hikogui system. | |
| std::pair< int, char ** > | crt_start (void *instance, int show_cmd) |
| Start the hikogui system. | |
| std::pair< int, char ** > | crt_start (int argc, char **argv) |
| Start the hikogui system. | |
| int | crt_finish (int argc, char **argv, int exit_code) |
| Finish the hikogui system. | |
| bool | dialog (dialog_type type, std::string_view title, std::string_view text) |
| Display a modal dialog. | |
| void | dialog_ok (std::string_view title, std::string_view message) noexcept |
| bool | dialog_yes_no (std::string_view title, std::string_view message) noexcept |
| bool | dialog_yes_no_cancel (std::string_view title, std::string_view message) |
| glyph_ids | find_glyph (font const &font, grapheme grapheme) noexcept |
| Find a glyph using the given code-point. | |
| glyph_ids | find_glyph (elusive_icon rhs) noexcept |
| glyph_ids | find_glyph (hikogui_icon rhs) noexcept |
| constexpr font_weight | font_weight_from_int (numeric_integral auto rhs) |
| Convert a font weight value between 50 and 1000 to a font weight. | |
| font_weight | font_weight_from_string (std::string_view rhs) |
| constexpr char const * | to_const_string (font_weight const &x) noexcept |
| std::string | to_string (font_weight const &x) noexcept |
| char | to_char (font_weight const &x) noexcept |
| constexpr int | to_int (font_weight const &x) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, font_weight const &rhs) |
| bool | almost_equal (font_weight const &lhs, font_weight const &rhs) noexcept |
| constexpr auto | font_weight_alternative_table_generator () noexcept |
| constexpr font_weight | font_weight_alterative (font_weight weight, int i) noexcept |
| constexpr int | format_count (std::string_view fmt) noexcept |
| Count arguments of a std::format format string. | |
| std::unique_ptr< formula_node > | parse_formula (formula_parse_context &context) |
| Parse an formula. | |
| std::unique_ptr< formula_node > | parse_formula (std::string_view::const_iterator first, std::string_view::const_iterator last) |
| Parse an formula. | |
| std::unique_ptr< formula_node > | parse_formula (std::string_view text) |
| Parse an formula. | |
| std::string_view::const_iterator | find_end_of_formula (std::string_view::const_iterator first, std::string_view::const_iterator last, std::string_view terminating_string) |
| Find the end of an formula. | |
| template<typename Proto , typename Func > | |
| auto | make_function (Func &&func) |
| template<typename Proto , typename Func > | |
| auto | make_async_function (Func &&func) |
| template<arithmetic T> | |
| constexpr std::optional< T > | make_guideline (vertical_alignment alignment, T bottom, T top, T padding_bottom, T padding_top, T guideline_width) |
| Create a guideline between two points. | |
| template<arithmetic T> | |
| constexpr std::optional< T > | make_guideline (horizontal_alignment alignment, T left, T right, T padding_left, T padding_right, T guideline_width=T{0}) |
| Create a guideline between two points. | |
| constexpr horizontal_alignment | mirror (horizontal_alignment const &rhs) noexcept |
| Mirror the horizontal alignment. | |
| constexpr horizontal_alignment | mirror (horizontal_alignment const &rhs, bool left_to_right) noexcept |
| Mirror the horizontal alignment. | |
| constexpr horizontal_alignment | resolve (horizontal_alignment const &rhs, bool left_to_right) noexcept |
| constexpr horizontal_alignment | resolve_mirror (horizontal_alignment const &rhs, bool left_to_right) noexcept |
| constexpr alignment | operator| (horizontal_alignment lhs, vertical_alignment rhs) noexcept |
| Combine vertical and horizontal alignment. | |
| constexpr alignment | operator| (vertical_alignment lhs, horizontal_alignment rhs) noexcept |
| Combine vertical and horizontal alignment. | |
| template<> | |
| constexpr point2 | narrow_cast (point2i const &rhs) noexcept |
| constexpr translate3 | translate_z (float z) noexcept |
| constexpr translate3i | translate_z (int z) noexcept |
| template<> | |
| constexpr translate2 | narrow_cast (translate2i const &rhs) noexcept |
| constexpr extent2 | sub_pixel_size (subpixel_orientation orientation) noexcept |
| Get the size of a sub-pixel based on the sub-pixel orientation. | |
| void | composit (pixmap_span< sfloat_rgba16 > dst, hi::color color, graphic_path const &mask) noexcept |
| Composit color onto the destination image where the mask is solid. | |
| void | composit (pixmap_span< sfloat_rgba16 > dst, graphic_path const &mask) noexcept |
| Composit color onto the destination image where the mask is solid. | |
| void | fill (pixmap_span< sdf_r8 > dst, graphic_path const &path) noexcept |
| Fill a signed distance field image from the given path. | |
| constexpr keyboard_focus_group | operator& (keyboard_focus_group const &lhs, keyboard_focus_group const &rhs) noexcept |
| constexpr keyboard_focus_group | operator| (keyboard_focus_group const &lhs, keyboard_focus_group const &rhs) noexcept |
| constexpr bool | to_bool (keyboard_focus_group group) noexcept |
| constexpr keyboard_modifiers | operator| (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr keyboard_modifiers | operator& (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr keyboard_modifiers & | operator|= (keyboard_modifiers &lhs, keyboard_modifiers const &rhs) noexcept |
| constexpr bool | to_bool (keyboard_modifiers const &rhs) noexcept |
| bool | operator>= (keyboard_modifiers const &lhs, keyboard_modifiers const &rhs)=delete |
| keyboard_modifiers | to_keyboard_modifiers (std::string_view s) |
| Parse a key-binding modifier name. | |
| std::string | to_string (keyboard_modifiers modifiers) |
| std::ostream & | operator<< (std::ostream &lhs, keyboard_modifiers const &rhs) |
| constexpr keyboard_state | operator| (keyboard_state const &lhs, keyboard_state const &rhs) noexcept |
| constexpr keyboard_state | operator& (keyboard_state const &lhs, keyboard_state const &rhs) noexcept |
| constexpr keyboard_state & | operator|= (keyboard_state &lhs, keyboard_state const &rhs) noexcept |
| bool | operator>= (keyboard_state const &lhs, keyboard_state const &rhs)=delete |
| constexpr bool | to_bool (keyboard_state const &rhs) noexcept |
| constexpr keyboard_virtual_key | to_keyboard_virtual_key (std::string_view s) |
| keyboard_virtual_key | to_keyboard_virtual_key (int key_code, bool extended, keyboard_modifiers modifiers) |
| constexpr std::string_view | to_string_view (keyboard_virtual_key key) noexcept |
| std::string | to_string (keyboard_virtual_key key) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, keyboard_virtual_key const &rhs) |
| std::string_view | to_string (theme_mode rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, theme_mode rhs) |
| std::vector< language_tag > | variants (std::vector< language_tag > languages) |
| Add variants to the list of languages. | |
| po_translations | parse_po (std::filesystem::path const &path) |
| std::string_view | get_translation (std::string_view msgid, long long n=0, std::vector< language * > const &languages=os_settings::languages()) noexcept |
| void | add_translation (std::string_view msgid, language const &language, std::vector< std::string > const &plural_forms) noexcept |
| void | add_translation (std::string_view msgid, std::string const &language_tag, std::vector< std::string > const &plural_forms) noexcept |
| void | add_translation (po_translations const &translations, language const &language) noexcept |
| constexpr void | fill (pixmap_span< sfloat_rgba16 > image, f32x4 color) noexcept |
| void | composit (pixmap_span< sfloat_rgba16 > under, pixmap_span< sfloat_rgba16 const > over) noexcept |
| void | composit (pixmap_span< sfloat_rgba16 > under, color over, pixmap_span< uint8_t const > mask) noexcept |
| constexpr int8_t | make_snorm_r8_value (float rhs) noexcept |
| template<typename T , typename U > | |
| bool | convert_overflow (T x, U *r) |
| template<std::integral T> | |
| constexpr bool | overflow_add (T lhs, T rhs, T *r) noexcept |
| template<std::integral T> | |
| constexpr bool | sub_overflow (T lhs, T rhs, T *r) |
| template<std::unsigned_integral T> | |
| constexpr bool | mul_overflow (T lhs, T rhs, T *r) noexcept |
| Multiply with overflow detection. | |
| template<std::integral T> | |
| constexpr bool | overflow_div (T lhs, T rhs, T *r) |
| jsonpath_node | parse_jsonpath_slicing_operator (auto &it, auto it_end, ssize_t first) |
| jsonpath_node | parse_jsonpath_integer_indexing_operator (auto &it, auto it_end, ssize_t first) |
| jsonpath_node | parse_jsonpath_name_indexing_operator (auto &it, auto it_end, std::string first) |
| jsonpath_node | parse_jsonpath_indexing_operator (auto &it, auto it_end) |
| jsonpath_node | parse_jsonpath_child_operator (auto &it, auto it_end) |
| std::tuple< bool, std::size_t, bool, std::size_t > | _parse_spreadsheet_address (std::string_view &address) |
| std::pair< std::size_t, std::size_t > | parse_spreadsheet_address (std::string_view address, std::size_t start_column_nr=0, std::size_t start_row_nr=0) |
| Parse a spreadsheet address. | |
| std::tuple< std::size_t, std::size_t, std::size_t, std::size_t > | parse_spreadsheet_range (std::string_view address, std::size_t start_column_nr=0, std::size_t start_row_nr=0) |
| Parse a spreadsheet range. | |
| std::byte * | locked_memory_allocator_allocate (std::size_t n) noexcept |
| void | locked_memory_allocator_deallocate (std::byte *p, std::size_t n) noexcept |
| constexpr network_event | operator| (network_event const &lhs, network_event const &rhs) noexcept |
| constexpr network_event | operator& (network_event const &lhs, network_event const &rhs) noexcept |
| constexpr network_event & | operator|= (network_event &lhs, network_event const &rhs) noexcept |
| constexpr bool | to_bool (network_event const &rhs) noexcept |
| constexpr size_t | bit (network_event const &rhs) noexcept |
| Get the bit index of the single bit of the network_event mask. | |
| constexpr network_event | network_event_from_win32 (long rhs) noexcept |
| constexpr network_error | network_error_from_win32 (int rhs) noexcept |
| constexpr network_events | network_events_from_win32 (WSANETWORKEVENTS const &rhs) noexcept |
| constexpr graphic_character_t | char_to_graphic_character (char x) noexcept |
| constexpr uint64_t | operator_to_int (char const *s) noexcept |
| std::pair< uint8_t, bool > | binary_operator_precedence (char const *str) noexcept |
| Binary Operator Precedence according to C++. | |
| std::pair< uint8_t, bool > | operator_precedence (char const *str, bool binary) noexcept |
| Operator Precedence according to C++. | |
| template<size_t BitsPerInteger, std::unsigned_integral... Args> | |
| packed_int_array (Args...) -> packed_int_array< BitsPerInteger, sizeof...(Args)> | |
| template<typename T > | |
| bool | check_alignment (void const *ptr) noexcept |
| template<typename T , typename Byte > | |
| auto | make_placement_ptr (std::span< Byte > bytes, std::size_t &offset) |
| template<typename T , typename Byte > | |
| auto | make_placement_ptr (std::span< Byte > bytes, std::size_t &&offset=0) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &offset, std::size_t n) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &&offset, std::size_t n) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &offset) |
| template<typename T , byte_like Byte> | |
| auto | make_placement_array (std::span< Byte > bytes, std::size_t &&offset=0) |
| template<typename T , std::size_t N> | |
| std::ostream & | operator<< (std::ostream &os, results< T, N > const &r) |
| template<typename T > | |
| hi_force_inline constexpr results< T, 1 > | solvePolynomial (T const &a, T const &b) noexcept |
| template<typename T > | |
| hi_force_inline constexpr results< T, 2 > | solvePolynomial (T const &a, T const &b, T const &c) noexcept |
| template<typename T > | |
| hi_force_inline results< T, 3 > | solveDepressedCubicTrig (T const &p, T const &q) noexcept |
| template<typename T > | |
| hi_force_inline results< T, 3 > | solveDepressedCubicCardano (T const &p, T const &q, T const &D) noexcept |
| template<typename T > | |
| hi_force_inline results< T, 3 > | solveDepressedCubic (T const &p, T const &q) noexcept |
| template<typename T > | |
| hi_force_inline constexpr results< T, 3 > | solvePolynomial (T const &a, T const &b, T const &c, T const &d) noexcept |
| void | generate_seed (void *ptr, size_t size) |
| Load a random seed. | |
| template<typename Value , typename Range > | |
| constexpr Value | get_first (Range &&range) |
| template<typename Range > | |
| constexpr Range::value_type | get_first (Range &&range) |
| template<typename Value , typename Range > | |
| constexpr std::vector< Value > | make_vector (Range &&range) |
| Make a vector from a view. | |
| template<typename Range > | |
| constexpr std::vector< typename Range::value_type > | make_vector (Range &&range) |
| template<typename Container > | |
| auto | recursive_iterator_begin (Container &rhs) noexcept |
| Get a recursive iterator from the begin of a recursive container. | |
| template<typename Container > | |
| auto | recursive_iterator_end (Container &rhs) noexcept |
| Get a recursive iterator from one beyond the end of a recursive container. | |
| template<typename Container > | |
| auto | recursive_iterator_begin (Container const &rhs) noexcept |
| Get a recursive iterator from the begin of a recursive container. | |
| template<typename Container > | |
| auto | recursive_iterator_end (Container const &rhs) noexcept |
| Get a recursive iterator from one beyond the end of a recursive container. | |
| uint32_t | registry_read_current_user_dword (std::string_view path, std::string_view name) |
| Read a DWORD registry value from the HKEY_CURRENT_USER. | |
| std::vector< std::string > | registry_read_current_user_multi_string (std::string_view path, std::string_view name) |
| Read a list of strings from the registry value from the HKEY_CURRENT_USER. | |
| constexpr on_overflow_t | operator| (on_overflow_t lhs, on_overflow_t rhs) noexcept |
| template<typename T , on_overflow_t OnOverflow> | |
| T | safe_handle_overflow (T value, bool overflow, bool is_positive) noexcept(OnOverflow !=on_overflow_t::Throw) |
| template<typename T , on_overflow_t OnOverflow, typename U > | |
| T | safe_convert (U const &rhs) noexcept(OnOverflow !=on_overflow_t::Throw) |
| template<on_overflow_t OnOverflow, typename T , typename U > | |
| make_promote_t< T, U > | safe_add (T const &lhs, U const &rhs) noexcept(OnOverflow !=on_overflow_t::Throw) |
| template<on_overflow_t OnOverflow, typename T , typename U > | |
| make_promote_t< T, U > | safe_sub (T const &lhs, U const &rhs) noexcept(OnOverflow !=on_overflow_t::Throw) |
| template<on_overflow_t OnOverflow, typename T , typename U > | |
| make_promote_t< T, U > | safe_mul (T const &lhs, U const &rhs) noexcept(OnOverflow !=on_overflow_t::Throw) |
| void | secure_clear (void *ptr, size_t size) noexcept |
| Securely clear memory. | |
| void | secure_clear (trivially_copyable auto &object) noexcept |
| Securely clear an object. | |
| template<typename It > | |
| void | secure_clear (It first, It last) noexcept |
| Securely clear a set of objects. | |
| void | secure_destroy_at (auto *p) |
| template<typename It > | |
| void | secure_destroy (It first, It last) |
| Securely destroy objects. | |
| template<typename It , typename OutIt > | |
| void | secure_uninitialized_move (It first, It last, OutIt d_first) |
| Securely move objects. | |
| __m128 | _mm_cvtph_ps_sse2 (__m128i value) noexcept |
| __m128i | _mm_cvtps_ph_sse4_1 (__m128 value) noexcept |
| std::unique_ptr< skeleton_node > | parse_skeleton (skeleton_parse_context &context) |
| std::unique_ptr< skeleton_node > | parse_skeleton (std::filesystem::path path, std::string_view::const_iterator first, std::string_view::const_iterator last) |
| std::unique_ptr< skeleton_node > | parse_skeleton (std::filesystem::path path, std::string_view text) |
| std::unique_ptr< skeleton_node > | parse_skeleton (std::filesystem::path path) |
| constexpr bool | is_upper (char c) noexcept |
| constexpr bool | is_lower (char c) noexcept |
| constexpr bool | is_alpha (char c) noexcept |
| constexpr bool | is_digit (char c) noexcept |
| constexpr bool | is_alpha_num (char c) noexcept |
| constexpr bool | is_line_feed (char c) noexcept |
| constexpr bool | is_white_space (char c) noexcept |
| constexpr bool | is_number_first (char c) noexcept |
| constexpr bool | is_name_first (char c) noexcept |
| constexpr bool | is_name_next (char c) noexcept |
| constexpr bool | is_quote (char c) noexcept |
| constexpr bool | is_open_bracket (char c) noexcept |
| constexpr bool | is_close_bracket (char c) noexcept |
| constexpr bool | is_operator (char c) noexcept |
| constexpr bool | is_digit (std::string_view str) noexcept |
| constexpr bool | is_alpha (std::string_view str) noexcept |
| constexpr char | to_lower (char c) noexcept |
| constexpr char | to_upper (char c) noexcept |
| std::string | to_lower (std::string_view str) noexcept |
| std::string | to_upper (std::string_view str) noexcept |
| constexpr std::string | to_title (std::string_view rhs) noexcept |
| Convert the current string to using title case. | |
| template<size_t N> | |
| constexpr fixed_string< N > | to_title (fixed_string< N > const &rhs) noexcept |
| Convert the current string to using title case. | |
| std::string | normalize_lf (std::string_view str) noexcept |
| Normalize string to use only line-feeds. | |
| std::string | make_identifier (std::string_view str) noexcept |
| Encode a string to be usable as an id. | |
| std::string | make_slug (std::string_view str) noexcept |
| Create a slug from a string. | |
| std::string | make_title (std::string_view str) noexcept |
| Create a title from a string. | |
|
template<typename T , size_t N> requires (sizeof(T) == 1 and (N == 4 or N == 5)) | |
| constexpr uint32_t | fourcc (T const (&txt)[N]) noexcept |
| constexpr uint32_t | fourcc_from_cstr (char const *txt) noexcept |
| std::string | fourcc_to_string (uint32_t x) noexcept |
| constexpr std::size_t | string_size (sizeable auto str) noexcept |
| constexpr std::size_t | string_size (auto str) noexcept |
| template<typename FirstNeedle , typename... Needles> | |
| std::pair< std::size_t, std::size_t > | string_find_any (std::string_view haystack, std::size_t pos, FirstNeedle const &first_needle, Needles const &...needles) noexcept |
| template<typename StringType , typename... Needles> | |
| std::vector< StringType > | _split (std::string_view haystack, Needles const &...needles) noexcept |
| template<typename... Needles> | |
| std::vector< std::string > | split (std::string_view haystack, Needles const &...needles) noexcept |
| std::vector< std::string > | split (std::string_view haystack) noexcept |
| template<typename... Needles> | |
| std::vector< std::string_view > | split_view (std::string_view haystack, Needles const &...needles) noexcept |
| std::vector< std::string_view > | split_view (std::string_view haystack) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, std::basic_string_view< CharT > const joiner={}) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, std::basic_string< CharT > const &joiner) noexcept |
| template<typename CharT > | |
| std::basic_string< CharT > | join (std::vector< std::basic_string< CharT > > const &list, CharT const *joiner) noexcept |
| std::string | join (std::vector< std::string_view > const &list, std::string_view const joiner={}) noexcept |
| template<typename It > | |
| std::pair< int, int > | count_line_and_columns (It begin, It const end) |
| template<typename T , std::size_t N> | |
| constexpr auto | to_array_without_last (T(&rhs)[N]) noexcept |
| Create an std::array from a one dimensional array, without the last element. | |
| template<typename T , std::size_t N> | |
| constexpr auto | to_array_without_last (T(&&rhs)[N]) noexcept |
| Create an std::array from a one dimensional array, without the last element. | |
| std::string | lstrip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| std::string | rstrip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| std::string | strip (std::string_view haystack, std::string needle=" \t\r\n\f") noexcept |
| std::vector< std::string > | ZZWSTR_to_string (wchar_t *first, wchar_t *last, ssize_t nr_strings=-1) |
| Convert a win32 zero terminated list of zero terminated strings. | |
| char * | make_cstr (char const *c_str, std::size_t size=-1) noexcept |
| Copy a std::string to new memory. | |
| char * | make_cstr (std::string const &s) noexcept |
| Copy a std::string to new memory. | |
| template<fixed_string Head, fixed_string... Tail> | |
| std::string | tag_at_index_impl (std::size_t index) noexcept |
| template<fixed_string... Tags> | |
| std::string | tag_at_index (std::size_t index) noexcept |
| template<fixed_string Head, fixed_string... Tail> | |
| std::size_t | index_of_tag_impl (std::string tag, std::size_t index) noexcept |
| template<fixed_string... Tags> | |
| std::size_t | index_of_tag (std::string tag) noexcept |
| template<fixed_string Needle, fixed_string Head, fixed_string... Tail> | |
| constexpr std::size_t | index_of_tag_impl (std::size_t index) noexcept |
| template<fixed_string Needle, fixed_string... Haystack> | |
| constexpr std::size_t | index_of_tag () noexcept |
| template<fixed_string Needle, fixed_string... Haystack> | |
| constexpr bool | has_tag () noexcept |
| template<fixed_string... Haystack> | |
| bool | has_tag (std::string needle) noexcept |
| template<typename It , typename ItEnd > | |
| aarectangle | line_metrics_bounding_rectangle (It first, ItEnd last) |
| Calculate the bounding box around line metrics. | |
| template<typename It , typename ItEnd > | |
| void | update_line_metrics_offset (It first, ItEnd last) noexcept |
| template<typename It , typename ItEnd > | |
| void | update_line_metrics_vertical_alignment (It first, ItEnd last, vertical_alignment alignment) |
| Vertically align the given line metrics. | |
| template<typename It , typename ItEnd , typename CharInfoFunc > | |
| void | replace_line_metrics (It first, ItEnd last, CharInfoFunc const &char_info_func, float max_line_width, float line_spacing, float paragraph_spacing, vertical_alignment alignment, std::vector< line_metrics > &lines) noexcept |
| std::string_view | to_string (text_decoration const &rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, text_decoration const &rhs) |
| constexpr text_phrasing_mask | to_text_phrasing_mask (text_phrasing const &rhs) noexcept |
| constexpr text_phrasing_mask | operator& (text_phrasing_mask const &lhs, text_phrasing_mask const &rhs) noexcept |
| constexpr text_phrasing_mask | operator| (text_phrasing_mask const &lhs, text_phrasing_mask const &rhs) noexcept |
| constexpr bool | all (text_phrasing_mask const &rhs) noexcept |
| constexpr bool | to_bool (text_phrasing_mask const &rhs) noexcept |
| std::string | format_engineering (std::chrono::nanoseconds duration) |
| constexpr char const * | to_const_string (tokenizer_name_t name) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, tokenizer_name_t rhs) |
| std::vector< token_t > | parseTokens (std::string_view text) noexcept |
| std::vector< token_t > | parseTokens (std::string_view::const_iterator first, std::string_view::const_iterator last) noexcept |
| gstring | to_gstring (std::u32string_view rhs, char32_t new_line_char=U'\u2029') noexcept |
| Convert a UTF-32 string to a grapheme-string. | |
| gstring | to_gstring (std::string_view rhs, char32_t new_line_char=U'\u2029') noexcept |
| Convert a UTF-8 string to a grapheme-string. | |
| gstring | to_gstring (std::string const &rhs, char32_t new_line_char=U'\u2029') noexcept |
| Convert a UTF-8 string to a grapheme-string. | |
| std::string | to_string (gstring_view rhs) noexcept |
| std::string | to_string (gstring const &rhs) noexcept |
| template<typename It , typename GetDescription , typename SetCodePoint , typename SetTextDirection > | |
| std::pair< It, std::vector< unicode_bidi_class > > | unicode_bidi (It first, It last, GetDescription get_description, SetCodePoint set_code_point, SetTextDirection set_text_direction, unicode_bidi_context const &context={}) |
| Reorder a given range of characters based on the unicode_bidi algorithm. | |
| template<typename It , typename GetDescription > | |
| unicode_bidi_class | unicode_bidi_direction (It first, It last, GetDescription get_description, unicode_bidi_context const &context={}) |
| Get the unicode bidi direction for the first paragraph and context. | |
| template<typename It , typename EndIt , typename DescriptionFunc > | |
| It | unicode_bidi_control_filter (It first, EndIt last, DescriptionFunc const &description_func) |
| Removes control characters which will not survive the bidi-algorithm. | |
| constexpr bool | is_isolate_starter (unicode_bidi_class const &rhs) noexcept |
| constexpr bool | is_isolate_formatter (unicode_bidi_class const &rhs) noexcept |
| constexpr bool | is_NI (unicode_bidi_class const &rhs) noexcept |
| constexpr bool | is_control (unicode_bidi_class const &rhs) noexcept |
| constexpr unicode_bidi_class | unicode_bidi_class_from_string (std::string_view str) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, unicode_break_opportunity const &rhs) |
| constexpr bool | is_LC (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_L (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_M (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_Mn_or_Mc (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_N (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_P (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_S (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_Z (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_Zp_or_Zl (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_C (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_visible (unicode_general_category const &rhs) noexcept |
| constexpr bool | is_noncharacter (char32_t rhs) noexcept |
| template<typename It , typename ItEnd , typename DescriptionFunc > | |
| unicode_break_vector | unicode_line_break (It first, ItEnd last, DescriptionFunc const &description_func) noexcept |
| The unicode line break algorithm UAX #14. | |
| constexpr std::vector< size_t > | unicode_line_break (unicode_break_vector const &opportunities, std::vector< float > const &widths, float maximum_line_width) |
| Unicode break lines. | |
| constexpr unicode_normalization_mask | decompose_newline_to (char32_t new_line_char) noexcept |
| constexpr bool | to_bool (unicode_normalization_mask const &rhs) noexcept |
| constexpr unicode_normalization_mask | operator| (unicode_normalization_mask const &lhs, unicode_normalization_mask const &rhs) noexcept |
| constexpr unicode_normalization_mask | operator& (unicode_normalization_mask const &lhs, unicode_normalization_mask const &rhs) noexcept |
| constexpr unicode_normalization_mask | operator& (unicode_normalization_mask const &lhs, unicode_decomposition_type const &rhs) noexcept |
| std::u32string | unicode_NFD (std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFD) noexcept |
| Convert text to Unicode-NFD normal form. | |
| std::u32string | unicode_NFC (std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFD) noexcept |
| Convert text to Unicode-NFC normal form. | |
| std::u32string | unicode_NFKD (std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFKD) noexcept |
| Convert text to Unicode-NFKD normal form. | |
| std::u32string | unicode_NFKC (std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFKD) noexcept |
| Convert text to Unicode-NFKC normal form. | |
| template<typename It , typename ItEnd , typename DescriptionFunc > | |
| unicode_break_vector | unicode_sentence_break (It first, ItEnd last, DescriptionFunc const &description_func) noexcept |
| The unicode word break algorithm UAX#29. | |
| bool | breaks_grapheme (char32_t code_point, grapheme_break_state &state) noexcept |
| Check if for a grapheme break before the given code-point. | |
| template<typename It , typename ItEnd > | |
| std::vector< unicode_break_opportunity > | unicode_grapheme_break (It first, ItEnd last) noexcept |
| void | wrap_lines (auto first, auto last, float max_width, auto get_width, auto get_code_point, auto set_code_point) noexcept |
| Wrap lines in text that are too wide. | |
| template<typename It , typename ItEnd , typename DescriptionFunc > | |
| unicode_break_vector | unicode_word_break (It first, ItEnd last, DescriptionFunc const &description_func) noexcept |
| The unicode word break algorithm UAX#29. | |
| template<std::unsigned_integral T> | |
| constexpr T | byte_swap (T x) noexcept |
| template<std::integral T> | |
| constexpr T | little_to_native (T x) |
| template<std::integral T> | |
| constexpr T | big_to_native (T x) |
| template<std::integral T> | |
| constexpr T | native_to_little (T x) |
| template<std::integral T> | |
| constexpr T | native_to_big (T x) |
| template<numeric T, std::endian Endian = std::endian::native> | |
| constexpr T | load (T const *src) noexcept |
| template<numeric T, std::endian Endian = std::endian::native, byte_like B> | |
| constexpr T | load (B const *src) noexcept |
| template<numeric T, std::endian Endian = std::endian::native> | |
| T | load (void const *src) noexcept |
| template<numeric T> | |
| constexpr T | load_le (T const *src) noexcept |
| template<numeric T, byte_like B> | |
| constexpr T | load_le (B const *src) noexcept |
| template<numeric T> | |
| T | load_le (void const *src) noexcept |
| template<numeric T> | |
| constexpr T | load_be (T const *src) noexcept |
| template<numeric T, byte_like B> | |
| constexpr T | load_be (B const *src) noexcept |
| template<numeric T> | |
| T | load_be (void const *src) noexcept |
| template<std::endian Endian = std::endian::native, numeric T, byte_like B> | |
| constexpr void | store (T value, B const *dst) noexcept |
| template<std::endian Endian = std::endian::native, numeric T> | |
| constexpr void | store (T value, void const *dst) noexcept |
| template<numeric T, byte_like B> | |
| constexpr void | store_le (T value, B const *dst) noexcept |
| template<numeric T> | |
| void | store_le (T value, void const *dst) noexcept |
| template<numeric T, byte_like B> | |
| constexpr void | store_be (T value, B const *dst) noexcept |
| template<numeric T> | |
| void | store_be (T value, void const *dst) noexcept |
| template<typename ValueType , typename NameType , typename... Rest> | |
| enum_metadata (ValueType const &, NameType const &, Rest const &...) -> enum_metadata< ValueType, enum_metadata_name_t< NameType >,(sizeof...(Rest)+2)/2 > | |
| template<fixed_string Tag> | |
| consteval uint32_t | fourcc () noexcept |
| template<fixed_string Tag> | |
| consteval uint32_t | operator""_fcc () |
| template<std::size_t N> | |
| fixed_string (char const (&str)[N]) -> fixed_string< N - 1 > | |
| template<std::invocable F> | |
| fixed_string (F const &f) -> fixed_string< std::ranges::size(F{}())> | |
| constexpr float | cvtsh_ss (uint16_t value) noexcept |
| constexpr uint16_t | cvtss_sh (float value) noexcept |
| constexpr std::size_t | hash_mix_two (std::size_t hash1, std::size_t hash2) noexcept |
| template<typename First , typename Second , typename... Args> | |
| constexpr std::size_t | hash_mix (First &&first, Second &&second, Args &&...args) noexcept |
| constexpr long long | pow10ll (int x) noexcept |
| template<typename Iterator > | |
| auto | mean (Iterator first, Iterator last) |
| template<typename Iterator , typename T > | |
| auto | stddev (Iterator first, Iterator last, T mean) |
| template<typename T > | |
| constexpr bool | inplace_max (T &a, T const &b) noexcept |
| template<typename T > | |
| constexpr bool | inplace_min (T &a, T const &b) noexcept |
| template<typename T > | |
| constexpr void | inplace_clamp (T &a, T const &lo, T const &hi) noexcept |
| template<std::signed_integral T> | |
| constexpr friend std::make_unsigned_t< T > | abs_unsigned (T rhs) noexcept |
| Absolute value of a signed number converted to an unsigned number. | |
| template<std::floating_point T> | |
| constexpr bool | almost_equal (T a, T b) noexcept |
| template<std::floating_point T> | |
| constexpr T | to_radian (T degree) noexcept |
| Convert degree to radian. | |
| template<std::unsigned_integral T> | |
| constexpr T | floor (T value, T alignment) noexcept |
| The greatest multiple of alignment less than or equal to value. | |
| template<std::unsigned_integral T> | |
| constexpr T | ceil (T value, T alignment) noexcept |
| The smallest multiple of alignment greater than or equal to value. | |
| template<std::floating_point T> | |
| constexpr bool | isnan (T value) noexcept |
| bool | equal_ptr (auto *p1, auto *p2) noexcept |
| template<typename T , typename U > | |
| void | memswap (T &dst, U &src) |
| template<typename InputIt , typename T > | |
| T * | placement_copy (InputIt src, T *dst) |
| Copy an object to another memory locations. | |
| template<typename InputIt , typename T > | |
| void | placement_copy (InputIt src_first, InputIt src_last, T *dst_first) |
| Copy objects into a memory location. | |
| template<typename T > | |
| T * | placement_move (T *src, T *dst) |
| Move an object between two memory locations. | |
| template<typename T > | |
| void | placement_move_within_array (T *src_first, T *src_last, T *dst_first) |
| Move an objects between two memory locations. | |
| template<typename T > | |
| void | placement_move (T *src, T *src_last, T *dst) |
| Move an objects between two memory locations. | |
| template<typename It , typename... Args> | |
| void | construct (It first, It last, Args const &...args) |
| Construct a set of objects. | |
| template<typename T > | |
| constexpr bool | is_aligned (T *p) |
| Check if a pointer is properly aligned for the object it is pointing at. | |
| template<typename T > | |
| constexpr T * | ceil (T *ptr, std::size_t alignment) noexcept |
| template<typename T > | |
| constexpr T * | floor (T *ptr, std::size_t alignment) noexcept |
| void * | advance_bytes (void *ptr, std::ptrdiff_t distance) noexcept |
| Advance a pointer by a number of bytes. | |
| void const * | advance_bytes (void const *ptr, std::ptrdiff_t distance) noexcept |
| Advance a pointer by a number of bytes. | |
| template<typename T > | |
| void | cleanupWeakPointers (std::vector< std::weak_ptr< T > > &v) noexcept |
| template<typename K , typename T > | |
| void | cleanupWeakPointers (std::unordered_map< K, std::weak_ptr< T > > &v) noexcept |
| template<typename K , typename T > | |
| void | cleanupWeakPointers (std::unordered_map< K, std::vector< std::weak_ptr< T > > > &v) noexcept |
| template<typename Value , typename Map , typename Key , typename... Args> | |
| std::shared_ptr< Value > | try_make_shared (Map &map, Key key, Args... args) |
| template<numeric T, byte_like B> | |
| constexpr T | unaligned_load (B const *src) noexcept |
| Make an unaligned load of an unsigned integer. | |
| template<numeric T> | |
| T | unaligned_load (void const *src) noexcept |
| template<numeric T, byte_like B> | |
| constexpr void | unaligned_store (T src, B *dst) noexcept |
| template<numeric T> | |
| void | unaligned_store (T src, void *dst) noexcept |
| template<numeric T> | |
| hi_force_inline constexpr void | store_or (T src, uint8_t *dst) noexcept |
| template<std::floating_point T> | |
| constexpr T | points_to_dp (T x) noexcept |
| Convert points to device independent pixels. | |
| template<awaitable... Others> | |
| when_any (Others &&...) -> when_any< awaitable_cast_t< std::decay_t< Others > >... > | |
Variables | |
| constexpr auto | audio_device_state_metadata |
| constexpr auto | audio_direction_metadata |
| constexpr auto | surround_mode_icons |
| constexpr auto | surround_mode_names |
| constexpr auto | surround_mode_short_names |
| constexpr auto | surround_mode_speaker_mappings |
| constexpr auto | bounds_test = interval<longreg_t>{1, 5} |
| template<fixed_string Tag> | |
| detail::tagged_counter< Tag > | global_counter |
| template<typename T > | |
| constexpr bool | is_datum_type_v = is_datum_type<T>::value |
| hilet | font_weight_from_string_table |
| constexpr auto | font_weight_alternative_table = font_weight_alternative_table_generator() |
| unfair_recursive_mutex | gfx_system_mutex |
| Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets. | |
| constexpr auto | subpixel_orientation_metadata |
| constexpr auto | keyboard_virtual_key_metadata |
| constexpr auto | theme_mode_metadata = enum_metadata{theme_mode::light, "light", theme_mode::dark, "dark"} |
| constexpr auto | semantic_text_style_metadata |
| constexpr auto | text_decoration_metadata |
| constexpr auto | text_phrasing_metadata |
| constexpr auto | ucd_compositions |
| constexpr auto | ucd_decompositions |
| constexpr auto | ucd_descriptions |
| constexpr auto | ucd_index |
| constexpr char32_t | unicode_replacement_character = U'\ufffd' |
| constexpr char32_t | unicode_LS = U'\u2028' |
| constexpr char32_t | unicode_PS = U'\u2029' |
| constexpr std::size_t | hardware_destructive_interference_size = 128 |
| constexpr std::size_t | hardware_constructive_interference_size = 64 |
| constexpr uint32_t | float16_bias = 15 |
| constexpr uint32_t | float32_bias = 127 |
| constexpr uint32_t | f32_to_f16_adjustment_exponent = float32_bias - float16_bias |
| constexpr uint32_t | f32_to_f16_lowest_normal_exponent = 0x01 + f32_to_f16_adjustment_exponent |
| constexpr uint32_t | f32_to_f16_infinite_exponent = 0x1f + f32_to_f16_adjustment_exponent |
| constexpr uint32_t | f32_to_f16_adjustment = f32_to_f16_adjustment_exponent << 23 |
| constexpr uint32_t | f32_to_f16_lowest_normal = f32_to_f16_lowest_normal_exponent << 23 |
| constexpr uint32_t | f32_to_f16_infinite = f32_to_f16_infinite_exponent << 23 |
| constexpr long long | pow10_table [20] |
| template<typename T > | |
| constexpr auto | large_number_v = T{16777215} |
| A large number. | |
| template<std::floating_point T> | |
| constexpr auto | points_per_inch_v = T{72.0} |
| The number of points (typography) per inch. | |
| template<std::floating_point T> | |
| constexpr auto | dp_per_inch_v = T{80.0} |
| The number of device independent pixels per inch. | |
| template<std::floating_point T> | |
| constexpr auto | points_to_dp_scale_v = dp_per_inch_v<T> / points_per_inch_v<T> |
| constexpr double | points_per_inch = points_per_inch_v<double> |
| constexpr double | dp_per_inch = dp_per_inch_v<double> |
| template<typename T > | |
| constexpr bool | is_numeric_signed_integral_v = is_numeric_signed_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_unsigned_integral_v = is_numeric_unsigned_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_integral_v = is_numeric_integral<T>::value |
| template<typename T > | |
| constexpr bool | is_numeric_v = is_numeric<T>::value |
| template<typename T > | |
| constexpr bool | is_character_v = is_character<T>::value |
| template<typename T > | |
| constexpr bool | 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 | has_native_intxx_v = has_native_intxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_native_uintxx_v = has_native_uintxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_native_floatxx_v = has_native_floatxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_intxx_v = has_intxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_uintxx_v = has_uintxx<N>::value |
| template<std::size_t N> | |
| constexpr bool | has_floatxx_v = has_floatxx<N>::value |
| template<typename T > | |
| constexpr bool | has_value_type_v = has_value_type<T>::value |
| template<typename T > | |
| constexpr bool | has_add_callback_v = has_add_callback<T>::value |
| template<typename BaseType , typename DerivedType > | |
| constexpr bool | is_decayed_base_of_v = is_decayed_base_of<BaseType,DerivedType>::value |
| template<typename DerivedType , typename BaseType > | |
| constexpr bool | is_derived_from_v = is_derived_from<DerivedType,BaseType>::value |
| template<typename DerivedType , typename BaseType > | |
| constexpr bool | is_decayed_derived_from_v = is_decayed_derived_from<DerivedType,BaseType>::value |
| template<typename Context , typename Expected > | |
| constexpr bool | is_different_v = not std::is_same_v<std::decay_t<Context>,std::decay_t<Expected>> |
| If the types are different. | |
| template<typename T > | |
| constexpr bool | is_atomic_v = is_atomic<T>::value |
| template<typename Out , typename In > | |
| constexpr bool | type_in_range_v |
All values of numeric type In can be represented without loss of precision by numeric type Out. | |
| template<typename Context , typename Expected , typename... OtherExpected> | |
| constexpr bool | is_forward_of_v = is_forward_of<Context, Expected, OtherExpected...>::value |
DOXYGEN BUG.
Doxygen can't handle namespace hi::inline v1 {} syntax. All files should be changed to use old-style inline namespace syntax.
| using v1::await_resume_result_t = hi_typename await_resume_result<T>::type |
Get the result type of an awaitable.
This is type return type of the await_resume() member function.
| using v1::awaitable_cast_t = hi_typename awaitable_cast<T>::type |
Resolve the type that is directly-awaitable.
This function may use operator co_await() to retrieve the actual awaitable type.
| using v1::common_integer_t = common_integer<L, R...>::type |
Get an integer type that will fit all values from all template parameters.
If there is a mix of signed and unsigned integer types, then:
If all integers are unsigned or all integers are signed, then:
| L | An integer type. |
| R | Other integer types. |
| using v1::copy_cv_t = typename copy_cv<To,From>::type |
Type-trait to copy const volatile qualifiers from one type to another.
| using v1::forward_value_t = typename forward_value<T>::type |
Get the storage type of the forward_value functor.
Use this type for the variables that are assigned with the return value of the forward_value functor.
| using v1::int128_t = __int128_t |
Signed 128 bit integer.
| using v1::jsonpath_node |
| using v1::longreg_t = int64_t |
Signed integer twice the size of a standard CPU register.
| using v1::make_string_t = typename make_string<T>::type |
type-trait to convert a character to a string type.
| using v1::make_string_view_t = typename make_string_view<T>::type |
type-trait to convert a character to a string_view type.
| using v1::uint128_t = unsigned __int128_t |
Unsigned 128 bit integer.
| using v1::ulongreg_t = uint64_t |
Unsigned integer twice the size of a standard CPU register.
| using v1::variant_decay_t = variant_decay<T>::type |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
The keyboard focus group used for finding a widget that will accept a particular focus.
|
strong |
Key modification keys pressed at the same time as another key.
The Fn key is not always available on larger keyboards and is often under full control of the keyboard, therefor it is not in the list of keyboard modifiers here.
| Enumerator | |
|---|---|
| shift | The shift key is being held. |
| control | The control key is being held. |
| alt | The alt-key, option-key or meta-key is being held. |
| super | The windows-key, key-key or super-key is being held. |
|
strong |
|
strong |
The orientation of the RGB sub-pixels of and LCD/LED panel.
|
strong |
Describes how a grapheme should be underlined when rendering the text.
It is carried with the grapheme and glyphs, so that the text render engine can draw the decoration after the text is shaped and in rendering-order (left to right) and, this makes it easier to correctly render the decoration of multiple glyphs in a single stroke.
|
strong |
|
strong |
|
strong |
Bidirectional class Unicode Standard Annex #9: https://unicode.org/reports/tr9/.
|
strong |
|
strong |
Unicode line break class.
See "AUX14: Unicode line break algorithm" http://unicode.org/reports/tr14/
|
strong |
|
constexprnoexcept |
Absolute value of a signed number converted to an unsigned number.
This function correctly handles std::numeric_limits<T>::min().
| rhs | A signed number. |
|
inlinenoexcept |
Advance a pointer by a number of bytes.
| ptr | The pointer to advance. |
| distance | The number of bytes to advance the pointer, may be negative. |
|
inlinenoexcept |
Advance a pointer by a number of bytes.
| ptr | The pointer to advance. |
| distance | The number of bytes to advance the pointer, may be negative. |
|
noexcept |
Strip data from the back side.
| data_first | The iterator pointing to the first element of data. |
| data_last | The iterator pointing one beyond the last element of data. |
| value_first | The iterator pointing to the first value to be removed from data. |
| value_last | The iterator pointing one beyond the last value to be removed from data. |
|
constexprnoexcept |
Find t on the curve P1->C->P2 which is closest to P.
Used for finding the shortest distance from a point to a curve. The shortest vector from a curve to a point is a normal.
|
constexprnoexcept |
Find t on the line P1->P2 which is closest to P.
Used for finding the shortest distance from a point to a curve. The shortest vector from a curve to a point is a normal.
|
constexprnoexcept |
Find x for y on a bezier curve. In a contour, multiple bezier curves are attached to each other on the anchor point. We don't want duplicate results when passing y that is at the same height as an anchor point. So we compare with less than to the end-anchor point to remove it from the result.
|
constexprnoexcept |
Find x for y on a bezier curve. In a contour, multiple bezier curves are attached to each other on the anchor point. We don't want duplicate results when passing y that is at the same height as an anchor point. So we compare with less than to the end-anchor point to remove it from the result.
Find x for y on a bezier curve. In a contour, multiple bezier curves are attached to each other on the anchor point. We don't want duplicate results when passing y that is at the same height as an anchor point. So we compare with less than to the end-anchor point to remove it from the result.
Return the flatness of a curve.
Return the flatness of a curve.
Return the flatness of a curve.
|
constexpr |
Find the begin and end of the current cluster.
| first | The first iterator, where this function will stop iterating. |
| last | The last iterator, where this function will stop iterating. |
| start | Where to start the search |
| predicate | A function returning the identifier of the cluster. |
|
noexcept |
Binary Operator Precedence according to C++.
|
constexprnoexcept |
Get the bit index of the single bit of the network_event mask.
|
noexcept |
Check if for a grapheme break before the given code-point.
Code points must be tested in order, starting at the beginning of the text.
| code_point | Current code point to test. |
| state | Current state of the grapheme-break algorithm. |
|
constexprnoexcept |
The smallest multiple of alignment greater than or equal to value.
| value | The unsigned value to round. |
| alignment | The alignment. |
| generator< cmdln_option > v1::command_line_parser | ( | It | first, |
| It | last, | ||
| std::string_view | options_with_arguments ) |
A POSIX command line parser.
The command line tokens passed to this function are the strings passed in via main, or pre-processed by the windows command line pre-processor.
Posix commad line argument syntax:
-ofoo or -o foo. Any character may be used in the argument, including a single hyphen, which by convention is either the stdin or stdout stream.This function will properly handle UTF-8 encoded strings. Including single character options where the character is represented with multiple UTF-8 code units.
| It | A forward iterator |
| first | Iterator to the first command line token |
| last | Iterator one beyond the last command line token |
| options_with_arguments | A list of single character options that accept an argument. |
|
noexcept |
Composit color onto the destination image where the mask is solid.
| dst | destination image. |
| mask | mask where the color will be composited on the destination. |
|
noexcept |
Composit color onto the destination image where the mask is solid.
| dst | destination image. |
| color | color to composit. |
| mask | mask where the color will be composited on the destination. |
|
noexcept |
|
noexcept |
Initialize the console.
| void v1::construct | ( | It | first, |
| It | last, | ||
| Args const &... | args ) |
Construct a set of objects.
|
inline |
Return line and column count at the end iterator.
| int v1::crt_finish | ( | int | argc, |
| char ** | argv, | ||
| int | exit_code ) |
Finish the hikogui system.
This function will cleanly shutdown the hikogui system.
| argc | The normalized number of arguments received from crt_start(). |
| argv | The normalized arguments received from crt_start(). |
| exit_code | The exit code of the application |
main().
|
inline |
Start the hikogui system.
This function will do a minimum amount of setup for the hikogui system.
crt_finish() to free the memory. | std::pair< int, char ** > v1::crt_start | ( | int | argc, |
| char ** | argv, | ||
| void * | instance, | ||
| int | show_cmd ) |
Start the hikogui system.
This function will do a minimum amount of setup for the hikogui system.
| argc | Number of arguments received from main(). |
| argv | The argument received from main(). |
| instance | A handle to the GUI instance of the operating system |
| show_cmd | Information on how to open the first window. |
crt_finish() to free the memory.
|
inline |
Start the hikogui system.
This function will do a minimum amount of setup for the hikogui system.
| instance | A handle to the GUI instance of the operating system |
| show_cmd | Information on how to open the first window. |
crt_finish() to free the memory. Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
| datum v1::decode_BON8 | ( | bstring_view | buffer | ) |
Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
| datum v1::decode_BON8 | ( | std::span< const std::byte > | buffer | ) |
Decode BON8 message from buffer.
| buffer | A buffer to a BON8 encoded message. |
| bool v1::dialog | ( | dialog_type | type, |
| std::string_view | title, | ||
| std::string_view | text ) |
Display a modal dialog.
You should never display a modal dialog unless it is absolutely necessary for the user to respond right now, or on a catastrophic failure.
| cancel_error | When the user presses "cancel". |
Encode a value to a BON8 message.
| value | The data to encode |
|
constexprnoexcept |
Search for the item that is equal to the key.
|
constexprnoexcept |
The fast lower bound algorithm.
| T | The type of the table element. |
| Key | The type of the key |
| Endian | The endianess of the key in the table. |
| table | A span of elements to search, the key is in the first bytes of each element. |
| key | A unsigned integral to search in the elements. |
|
noexcept |
Lock-free fetch-then-max operation on an atomic.
|
noexcept |
Lock-free fetch-then-min operation on an atomic.
|
noexcept |
Fill a signed distance field image from the given path.
| dst | An signed-distance-field which show distance toward the closest curve |
| path | A path. |
|
noexcept |
Fill a signed distance field image from the given contour.
| image | An signed-distance-field which show distance toward the closest curve |
| curves | All curves of path, in no particular order. |
|
noexcept |
Fill a linear gray scale image by filling a curve with anti-aliasing.
| image | An alpha-channel image to make opaque where pixel is inside the contours |
| curves | All curves of path, in no particular order. |
|
constexprnoexcept |
Find the first occurrence of an value in a data.
| data_first | An iterator pointing to the first item of data. |
| data_last | An iterator pointing one beyond the last item of data. |
| value_first | An iterator pointing to a value to find in data. |
| value_last | An iterator pointing on beyond the last value to find in data. |
|
constexpr |
Find the start of the current cluster.
| last | The last iterator, where this function will stop iterating. |
| start | Where to start the search |
| predicate | A function returning the identifier of the cluster. |
| std::string_view::const_iterator v1::find_end_of_formula | ( | std::string_view::const_iterator | first, |
| std::string_view::const_iterator | last, | ||
| std::string_view | terminating_string ) |
Find the end of an formula.
This function will track nested brackets and strings, until the terminating_character is found.
| first | Iterator to the first character of the formula. |
| last | Iterator to beyond the last character of the text. |
| terminating_string | The string to find, which is not part of the formula. |
Find a glyph using the given code-point.
This function will find a glyph matching the grapheme in the selected font, or find the glyph in the fallback font.
| font | The font to use to find the grapheme in. |
| grapheme | The Unicode grapheme to find in the font. |
|
constexprnoexcept |
The greatest multiple of alignment less than or equal to value.
| value | The unsigned value to round. |
| alignment | The alignment. |
|
constexpr |
Convert a font weight value between 50 and 1000 to a font weight.
|
inline |
For each cluster. func() is executed for each cluster that is found between first-last. A cluster is found between two separators, a separator is detected with IsClusterSeperator(). A cluster does not include the separator itself.
|
constexprnoexcept |
Count arguments of a std::format format string.
| fmt | The format string. |
| -1 | Invalid open-brace inside format argument. |
| -2 | Invalid close-brace outside format argument. |
| -3 | Missing close-brace at end-of-string. |
| std::string v1::format_JSON | ( | datum const & | root | ) |
Dump an datum object into a JSON string.
| root | datum-object to serialize |
|
noexcept |
Strip data from the front side.
| data_first | The iterator pointing to the first element of data. |
| data_last | The iterator pointing one beyond the last element of data. |
| value_first | The iterator pointing to the first value to be removed from data. |
| value_last | The iterator pointing one beyond the last value to be removed from data. |
|
constexpr |
Generate data in an array.
| operation | A function to execute for each element in the array. The function accepts a single index argument. |
| void v1::generate_seed | ( | void * | ptr, |
| size_t | size ) |
Load a random seed.
| [out] | ptr | The pointer to the buffer bytes where to generate the seed. |
| size | The number of bytes to generate. |
| os_error | on failure. |
|
inlinenoexcept |
Read a single bit from span of bytes Bits are ordered LSB first.
| buffer | The buffer of bytes to extract the bit from. |
| index | The index of the bit in the byte span. |
|
inlinenoexcept |
Read a bits from of span of bytes Bits are ordered LSB first.
Bits are copied as if the byte array is layed out from right to left, example:
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | byte 1 | byte 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : : index=6 +-+-+-+-+-+ length=5 | Return | +-+-+-+-+-+ 4 3 2 1 0
| buffer | The buffer of bytes to extract bits from. |
| index | The index of the bit in the byte span. |
| length | the number of bits to return. |
|
constexpr |
|
inlinenoexcept |
Find the intersect points between two line segments.
|
inlinenoexcept |
Find the intersect points between two line segments.
|
constexprnoexcept |
Return the index of the tag in the template arguments. If the tag is not found it returns the index 1 beyond the template arguments.
|
noexcept |
Return the index of the tag in the template arguments. If the tag is not found it returns the index 1 beyond the template arguments.
| bstring v1::inflate | ( | std::span< std::byte const > | bytes, |
| std::size_t & | offset, | ||
| std::size_t | max_size = 0x0100 '0000 ) |
Inflate compressed data using the deflate algorithm bytes should include at least 32 bit of trailer, for the overflow check which will slightly overrun the actual compressed data for performance reasons.
|
constexpr |
Check if a pointer is properly aligned for the object it is pointing at.
|
inline |
Calculate the bounding box around line metrics.
| first | A iterator to the first line metrics element. |
| last | A iterator one beyond the last line metrics element |
|
inlinenoexcept |
Copy a std::string to new memory.
The caller will have to delete [] return value.
|
inlinenoexcept |
Copy a std::string to new memory.
The caller will have to delete [] return value.
|
inlinenoexcept |
Encode a string to be usable as an id.
An id has the following format: [_a-zA-Z][_a-zA-Z0-9]*
|
inlinenoexcept |
Create a slug from a string.
A slug contains only lower case letters, digits and dashes. Duplicated dashes are eliminated.
|
inlinenoexcept |
Create a title from a string.
A title contains words separated by a single space, where each word starts with a capital letter followed by lower case letters. Digits may be part of a word or form a separate word, digits are not counted as the start of a word for capitalization.
|
constexpr |
Make a vector from a view.
This function will make a vector with a copy of the elements of a view.
|
constexpr |
|
noexcept |
Make a contour of Bezier curves from a list of points. The contour is also colorized to be used for creating multichannel-signed-distance-fields.
| first | Iterator to the first point in a list |
| last | Iterator one beyond the last point in a list |
|
noexcept |
Inverse a contour. Reverse the direction of the whole contour, turning it inside out. This is useful for creating a stroke, by inverting the inner offset contour.
| contour | contour to reverse. |
|
noexcept |
Make a contour of Bezier curves from another contour of Bezier curves at a offset. Make a new contour made out of line-segments offset from the original curve. After offsetting the line segment the line segments are properly cut or extended to cover all intersections and gaps.
| contour | a list of bezier curve segments forming a closed contour. |
| offset | positive means the parallel contour will be on the starboard side of the given contour. |
| line_join_style | how the gaps between line segments are joined together. |
| tolerance | to how curved the new contour should look. |
|
constexprnoexcept |
Mirror the horizontal alignment.
|
constexprnoexcept |
Mirror the horizontal alignment.
|
constexprnoexcept |
Multiply with overflow detection.
|
inlinenoexcept |
Normalize string to use only line-feeds.
|
noexcept |
Operator Precedence according to C++.
|
constexprnoexcept |
Combine vertical and horizontal alignment.
| lhs | A text alignment. |
| rhs | A vertical alignment. |
|
constexprnoexcept |
Merge on_overflow_t. Get the on_overflow of two arguments with highest safety.
|
constexprnoexcept |
Combine vertical and horizontal alignment.
| lhs | A text alignment. |
| rhs | A vertical alignment. |
| std::unique_ptr< formula_node > v1::parse_formula | ( | formula_parse_context & | context | ) |
Parse an formula.
Parses an formula until EOF, ')', ',', '}'
|
inline |
Parse an formula.
Parses an formula until EOF, ')', ',', '}'
|
inline |
Parse an formula.
Parses an formula until EOF, ')', ',', '}'
|
inline |
Parse a JSON string.
| path | A path pointing to the file to parse. |
| datum v1::parse_JSON | ( | std::string_view | text | ) |
Parse a JSON string.
| text | The text to parse. |
|
noexcept |
parse tokens from a text. This parsing tokens from most programming languages. It will recognize:
Errors will be returned as tokens which will point back into the text.
| T * v1::placement_copy | ( | InputIt | src, |
| T * | dst ) |
Copy an object to another memory locations.
This function will copy an object located in one memory location to another through the use of placement-new.
If you want to access the object in dst, you should use the return value.
| src | An interator to an object. |
| dst | A pointer to allocated memory. |
| void v1::placement_copy | ( | InputIt | src_first, |
| InputIt | src_last, | ||
| T * | dst_first ) |
Copy objects into a memory location.
This function will placement_copy an array of objects to a memory location.
| T * v1::placement_move | ( | T * | src, |
| T * | dst ) |
Move an object between two memory locations.
This function will move an object from one memory location to another through the use of placement-new. The object in the source memory location is destroyed.
If you want to access the object in dst, you should use the return value. It is undefined behavior when src and dst point to the same object. It is undefined behavior if either or both src and dst are nullptr.
| src | A pointer to an object. |
| dst | A pointer to allocated memory. |
| void v1::placement_move | ( | T * | src, |
| T * | src_last, | ||
| T * | dst ) |
Move an objects between two memory locations.
This function will placement_move an array of objects between two memory locations.
WARNING: if moving objects within an array use placement_move_within_array to handle overlapping regions.
| void v1::placement_move_within_array | ( | T * | src_first, |
| T * | src_last, | ||
| T * | dst_first ) |
Move an objects between two memory locations.
This function will placement_move an array of objects between two memory locations.
It is undefined behavior when src_first and dst_first are not part of the same array.
The objects may overlap: copying takes place as if the objects were copied to a temporary object array and then the objects were copied from the array to dst.
|
constexprnoexcept |
Convert points to device independent pixels.
|
noexcept |
Get a recursive iterator from the begin of a recursive container.
|
noexcept |
Get a recursive iterator from the begin of a recursive container.
|
noexcept |
Get a recursive iterator from one beyond the end of a recursive container.
|
noexcept |
Get a recursive iterator from one beyond the end of a recursive container.
| uint32_t v1::registry_read_current_user_dword | ( | std::string_view | path, |
| std::string_view | name ) |
Read a DWORD registry value from the HKEY_CURRENT_USER.
| hi::os_error | when the path/name is not found in the registry. |
| std::vector< std::string > v1::registry_read_current_user_multi_string | ( | std::string_view | path, |
| std::string_view | name ) |
Read a list of strings from the registry value from the HKEY_CURRENT_USER.
| hi::os_error | when the path/name is not found in the registry. |
|
constexpr |
Find the start of the current cluster.
| first | The first iterator, where this function will stop iterating. |
| start | Where to start the search |
| predicate | A function returning the identifier of the cluster. |
|
noexcept |
Handle a potential overflow.
| value | returned by operation; potentially invalid. |
| overflow | true when the operation overflowed. |
| is_positive | true when saturation is at the positive limit. |
|
noexcept |
Securely clear a set of objects.
This function uses an operating system service for erasing memory securely.
| first | An iterator pointing to the first object to clear. |
| last | An iterator pointing to one beyond to clear. |
|
noexcept |
Securely clear an object.
This function uses an operating system service for erasing memory securely.
| object | The object to securely clear to zeroes. |
|
noexcept |
Securely clear memory.
This function uses an operating system service for erasing memory securely.
| ptr | The pointer to the memory to clear. |
| size | The number of bytes to clear. |
| void v1::secure_destroy | ( | It | first, |
| It | last ) |
Securely destroy objects.
Destroy objects and overwrite its memory with all '1' followed by all '0'.
| first | An iterator to the first object. |
| last | An iterator to beyond the last object. |
| void v1::secure_uninitialized_move | ( | It | first, |
| It | last, | ||
| OutIt | d_first ) |
Securely move objects.
First calls std::uinitialized_move() then overwrites memory with all '1' followed by all '0'.
| first | An iterator to the first object to move |
| last | An iterator to beyond the last object to move |
| d_first | An destination iterator to uninitialized memory. |
|
noexcept |
Shuffle a container based on a list of indices.
It is undefined behavior for an index to point beyond last. It is undefined behavior for an index to repeat.
Complexity is O(n) swaps, where n is the number of indices.
| first | An iterator pointing to the first item in a container to be shuffled (index = 0) |
| last | An iterator pointing beyond the last item in a container to be shuffled. |
| indices_first | An iterator pointing to the first index. |
| indices_last | An iterator pointing beyond the last index. |
|
noexcept |
Shuffle a container based on a list of indices.
It is undefined behavior for an index to point beyond last. It is undefined behavior for an index to repeat.
Complexity is O(n) swaps, where n is the number of indices.
| first | An iterator pointing to the first item in a container to be shuffled (index = 0) |
| last | An iterator pointing beyond the last item in a container to be shuffled. |
| indices_first | An iterator pointing to the first index. |
| indices_last | An iterator pointing beyond the last index. |
| index_op | A function returning the size index from indices. The default returns the index item it self. |
|
noexcept |
Solve cubic function in the form.
![\[t^{3}+pt+q=0\]](form_4_dark.png)
![\[D=\frac{1}{4}q^{2}+\frac{1}{27}p^{3}\]](form_5_dark.png)
![\[U=\frac{1}{3}\arccos(\frac{3q}{2p})\sqrt{-\frac{3}{p}}\]](form_6_dark.png)
![\[V=2\sqrt{-\frac{1}{3}p}\]](form_7_dark.png)
![\[
x=
\begin{cases}
0 & \text{if } p=0 \text{ and }q=0\\
\frac{3q}{p}, -\frac{3q}{2p} & \text{if } D=0\\
\sqrt[3]{-\frac{1}{2}+\sqrt{D}} + \sqrt[3]{-\frac{1}{2}-\sqrt{D}} & \text{if } D>0\\
V\cdot \cos(U), V\cdot\cos(U-\frac{2}{3}\pi),V\cdot\cos(U-\frac{4}{3}\pi) & \text{if } D<0
\end{cases}
\]](form_8_dark.png)
|
noexcept |
Trigonometric solution for three real roots
|
constexprnoexcept |
Solve line function. ax+b=0
![\[
x=
\begin{cases}
\frac{-b}{a}, & \text{if } a\ne0\\
\in\mathbb{R}, & \text{if } a=0,b=0\\
\o & \text{if } a=0,b\ne0
\end{cases}
\]](form_0_dark.png)
|
constexprnoexcept |
Solve quadratic function.
![\[ax^{2}+bx+c=0\]](form_1_dark.png)
![\[D=b^{2}-4ac\]](form_2_dark.png)
![\[
x=
\begin{cases}
\frac{-b}{2a}, & \text{if } D=0\\
\frac{-b -\sqrt{D}}{2a}, \frac{-b +\sqrt{D}}{2a} & \text{if } D>0\\
\o & \text{if } D<0
\end{cases}
\]](form_3_dark.png)
|
constexprnoexcept |
Solve cubic function.
![\[ax^{3}+bx^{2}+cx+d=0\]](form_9_dark.png)
![\[p=\frac{3ac-b^{2}}{3a^{2}}\]](form_10_dark.png)
,
![\[q=\frac{2b^{3}-9abc+27a^{2}d}{27a^{3}}\]](form_11_dark.png)
![\[x=\text{solveDepressedCube}(p,q)-\frac{b}{3a}\]](form_12_dark.png)
|
constexprnoexcept |
Get the size of a sub-pixel based on the sub-pixel orientation.
|
noexcept |
Return the tag in the template arguments at the index. If the index points beyond the template arguments it will return the 0-tag.
|
constexprnoexcept |
Create an std::array from a one dimensional array, without the last element.
Useful for copying a string literal without the nul-termination
|
constexprnoexcept |
Create an std::array from a one dimensional array, without the last element.
Useful for copying a string literal without the nul-termination
|
inlinenoexcept |
Convert a UTF-8 string to a grapheme-string.
| rhs | The UTF-8 string to convert. |
| new_line_char | The new_line_character to use. |
|
inlinenoexcept |
Convert a UTF-8 string to a grapheme-string.
| rhs | The UTF-8 string to convert. |
| new_line_char | The new_line_character to use. |
|
noexcept |
Convert a UTF-32 string to a grapheme-string.
| rhs | The UTF-32 string to convert. |
| new_line_char | The new_line_character to use. |
|
inline |
Parse a key-binding modifier name.
| s | The modifier name, with or without the canonical trailing '+' |
|
constexprnoexcept |
Convert degree to radian.
| degree | The number of degrees. |
|
constexprnoexcept |
Convert the current string to using title case.
This function does not do full unicode case conversion; only ASCII letters [a-zA-Z] will be modified.
|
constexprnoexcept |
Convert the current string to using title case.
This function does not do full unicode case conversion; only ASCII letters [a-zA-Z] will be modified.
|
inline |
Transform an input container to the output container.
| input | Input container. |
| operation | A function to execute on each element in the input |
|
constexprnoexcept |
Make an unaligned load of an unsigned integer.
| std::pair< It, std::vector< unicode_bidi_class > > v1::unicode_bidi | ( | It | first, |
| It | last, | ||
| GetDescription | get_description, | ||
| SetCodePoint | set_code_point, | ||
| SetTextDirection | set_text_direction, | ||
| unicode_bidi_context const & | context = {} ) |
Reorder a given range of characters based on the unicode_bidi algorithm.
This algorithm will:
It is likely that an application has the characters grouped as graphemes and is accompanied with the original index and possible other information. The get_char function returns the first code-point of a grapheme. The set_char function is used when the code-point needs to be replaced with a mirrored version.
The bidirectional algorithm will work correctly with either a list of code points or a list of first-code-point-of-graphemes.
| first | The first iterator |
| last | The last iterator |
| get_description | A function to get the unicode description of an item. |
| set_code_point | A function to set the character in an item. |
| set_text_direction | A function to set the text direction in an item. |
| context | The context/configuration to use for the bidi-algorithm. |
| It v1::unicode_bidi_control_filter | ( | It | first, |
| EndIt | last, | ||
| DescriptionFunc const & | description_func ) |
Removes control characters which will not survive the bidi-algorithm.
All RLE, LRE, RLO, LRO, PDF, and BN characters are removed.
| first | The first character. |
| last | One beyond the last character. |
| description_func | A function returning a unicode_description const& of the character. |
| unicode_bidi_class v1::unicode_bidi_direction | ( | It | first, |
| It | last, | ||
| GetDescription | get_description, | ||
| unicode_bidi_context const & | context = {} ) |
Get the unicode bidi direction for the first paragraph and context.
| first | The first iterator |
| last | The last iterator |
| get_description | A function to get the unicode description of an item. |
| context | The context/configuration to use for the bidi-algorithm. |
|
inlinenoexcept |
The unicode line break algorithm UAX #14.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| description_func | A function to get a reference to unicode_description from a character. |
|
constexpr |
Unicode break lines.
| opportunities | The list of break opportunities. |
| widths | The list of character widths |
| maximum_line_width | The maximum line width. |
|
noexcept |
Convert text to Unicode-NFC normal form.
Code point 0x00'ffff is used internally, do not pass in text.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
noexcept |
Convert text to Unicode-NFD normal form.
Code point 0x00'ffff is used internally, do not pass in text.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
noexcept |
Convert text to Unicode-NFKC normal form.
Code point 0x00'ffff is used internally, do not pass in text.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
noexcept |
Convert text to Unicode-NFKD normal form.
Code point 0x00'ffff is used internally, do not pass in text.
| text | to normalize, in-place. |
| normalization_mask | Extra features for normalization. |
|
inlinenoexcept |
The unicode word break algorithm UAX#29.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| description_func | A function to get a reference to unicode_description from a character. |
|
inlinenoexcept |
The unicode word break algorithm UAX#29.
| first | An iterator to the first character. |
| last | An iterator to the last character. |
| description_func | A function to get a reference to unicode_description from a character. |
|
constexpr |
Remove element from a container.
| first | The iterator pointing to the first element of the container |
| last | The iterator pointing one beyond the last element of the container. |
| element | The iterator that points to the element to be removed. |
|
inline |
Vertically align the given line metrics.
| first | A iterator to the first line metrics element. |
| last | A iterator one beyond the last line metrics element |
| alignment | How to vertically align the lines. |
| std::vector< language_tag > v1::variants | ( | std::vector< language_tag > | languages | ) |
Add variants to the list of languages.
This function is mostly used to add languages to a list of preferred languages to search for translations in the translation catalog.
| languages | A list of languages ordered by preference. |
|
noexcept |
Wrap lines in text that are too wide.
This algorithm may modify white-space in text and change them into line seperators. Lines are separated using the U+2028 code-point, and paragraphs are separated by the U+2029 code-point.
| first | The first iterator of a text to wrap |
| last | The one beyond the last iterator of a text to wrap |
| max_width | The maximum width of a line. |
| get_width | A function returning the width of an item pointed by the iterator. float get_width(auto const &item) |
| get_code_point | A function returning the code-point of an item pointed by the iterator. char32_t get_code_point(auto const &item) |
| set_code_point | A function changing the code-point of an item pointed by the iterator. void set_code_point(auto &item, char32_t code_point) |
|
inline |
Convert a win32 zero terminated list of zero terminated strings.
| first | A pointer to a buffer of a zero terminated list of zero terminated string. |
| last | A pointer one beyond the buffer. |
| nr_strings | The number of string in the buffer. |
| parse_error | when the list does not terminate with a zero. |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
The number of device independent pixels per inch.
device independent pixels per platform:
The Android dp size is almost halfway between win32 and MacOS, which we will use for hikogui.
|
inline |
|
inline |
Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets.
|
inlineconstexpr |
An array of this type will implicitly create objects within that array.
P059R6: Implicit creation of objects for low-level object manipulation.
|
inlineconstexpr |
True is the supplied type is a character integer. This distinguishes between integer characters and integer numbers.
|
constexpr |
If the types are different.
The two types are checked after removing const, volatile and reference qualifiers.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
constexpr |
A large number.
This number 16777215 (2^24 - 1). Integers beyond this number may not be accurately represented by a float.
|
constexpr |
|
constexpr |
The number of points (typography) per inch.
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
All values of numeric type In can be represented without loss of precision by numeric type Out.