From a90c5060e9dda9fc6516e53dfcbb013c06295210 Mon Sep 17 00:00:00 2001 From: "C. J. Howard" Date: Wed, 8 Mar 2023 15:05:12 +0800 Subject: [PATCH] Make unicode blocks constexpr --- CMakeLists.txt | 1 - src/engine/type/unicode/block.cpp | 347 -------- src/engine/type/unicode/block.hpp | 1284 +++++++++++++-------------- src/engine/type/unicode/convert.hpp | 4 +- 4 files changed, 644 insertions(+), 992 deletions(-) delete mode 100644 src/engine/type/unicode/block.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 912a62c..c2fc691 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ cmake_minimum_required(VERSION 3.25) - option(APPLICATION_NAME "Application name" "Antkeeper") option(APPLICATION_VERSION "Application version string" "0.0.0") option(APPLICATION_AUTHOR "Application author" "C. J. Howard") diff --git a/src/engine/type/unicode/block.cpp b/src/engine/type/unicode/block.cpp deleted file mode 100644 index 5c45c89..0000000 --- a/src/engine/type/unicode/block.cpp +++ /dev/null @@ -1,347 +0,0 @@ -/* - * Copyright (C) 2023 Christopher J. Howard - * - * This file is part of Antkeeper source code. - * - * Antkeeper source code is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Antkeeper source code is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Antkeeper source code. If not, see . - */ - -#include - -namespace type { -namespace unicode { - -const block block::basic_latin{0x0, 0x7F}; -const block block::latin_1_supplement{0x80, 0xFF}; -const block block::latin_extended_a{0x0100, 0x017F}; -const block block::latin_extended_b{0x0180, 0x024F}; -const block block::ipa_extensions{0x0250, 0x02AF}; -const block block::spacing_modifier_letters{0x02B0, 0x02FF}; -const block block::combining_diacritical_marks{0x0300, 0x036F}; -const block block::greek_and_coptic{0x0370, 0x03FF}; -const block block::cyrillic{0x0400, 0x04FF}; -const block block::cyrillic_supplement{0x0500, 0x052F}; -const block block::armenian{0x0530, 0x058F}; -const block block::hebrew{0x0590, 0x05FF}; -const block block::arabic{0x0600, 0x06FF}; -const block block::syriac{0x0700, 0x074F}; -const block block::arabic_supplement{0x0750, 0x077F}; -const block block::thaana{0x0780, 0x07BF}; -const block block::nko{0x07C0, 0x07FF}; -const block block::samaritan{0x0800, 0x083F}; -const block block::mandaic{0x0840, 0x085F}; -const block block::syriac_supplement{0x0860, 0x086F}; -const block block::arabic_extended_b{0x0870, 0x089F}; -const block block::arabic_extended_a{0x08A0, 0x08FF}; -const block block::devanagari{0x0900, 0x097F}; -const block block::bengali{0x0980, 0x09FF}; -const block block::gurmukhi{0x0A00, 0x0A7F}; -const block block::gujarati{0x0A80, 0x0AFF}; -const block block::oriya{0x0B00, 0x0B7F}; -const block block::tamil{0x0B80, 0x0BFF}; -const block block::telugu{0x0C00, 0x0C7F}; -const block block::kannada{0x0C80, 0x0CFF}; -const block block::malayalam{0x0D00, 0x0D7F}; -const block block::sinhala{0x0D80, 0x0DFF}; -const block block::thai{0x0E00, 0x0E7F}; -const block block::lao{0x0E80, 0x0EFF}; -const block block::tibetan{0x0F00, 0x0FFF}; -const block block::myanmar{0x1000, 0x109F}; -const block block::georgian{0x10A0, 0x10FF}; -const block block::hangul_jamo{0x1100, 0x11FF}; -const block block::ethiopic{0x1200, 0x137F}; -const block block::ethiopic_supplement{0x1380, 0x139F}; -const block block::cherokee{0x13A0, 0x13FF}; -const block block::unified_canadian_aboriginal_syllabics{0x1400, 0x167F}; -const block block::ogham{0x1680, 0x169F}; -const block block::runic{0x16A0, 0x16FF}; -const block block::tagalog{0x1700, 0x171F}; -const block block::hanunoo{0x1720, 0x173F}; -const block block::buhid{0x1740, 0x175F}; -const block block::tagbanwa{0x1760, 0x177F}; -const block block::khmer{0x1780, 0x17FF}; -const block block::mongolian{0x1800, 0x18AF}; -const block block::unified_canadian_aboriginal_syllabics_extended{0x18B0, 0x18FF}; -const block block::limbu{0x1900, 0x194F}; -const block block::tai_le{0x1950, 0x197F}; -const block block::new_tai_lue{0x1980, 0x19DF}; -const block block::khmer_symbols{0x19E0, 0x19FF}; -const block block::buginese{0x1A00, 0x1A1F}; -const block block::tai_tham{0x1A20, 0x1AAF}; -const block block::combining_diacritical_marks_extended{0x1AB0, 0x1AFF}; -const block block::balinese{0x1B00, 0x1B7F}; -const block block::sundanese{0x1B80, 0x1BBF}; -const block block::batak{0x1BC0, 0x1BFF}; -const block block::lepcha{0x1C00, 0x1C4F}; -const block block::ol_chiki{0x1C50, 0x1C7F}; -const block block::cyrillic_extended_c{0x1C80, 0x1C8F}; -const block block::georgian_extended{0x1C90, 0x1CBF}; -const block block::sundanese_supplement{0x1CC0, 0x1CCF}; -const block block::vedic_extensions{0x1CD0, 0x1CFF}; -const block block::phonetic_extensions{0x1D00, 0x1D7F}; -const block block::phonetic_extensions_supplement{0x1D80, 0x1DBF}; -const block block::combining_diacritical_marks_supplement{0x1DC0, 0x1DFF}; -const block block::latin_extended_additional{0x1E00, 0x1EFF}; -const block block::greek_extended{0x1F00, 0x1FFF}; -const block block::general_punctuation{0x2000, 0x206F}; -const block block::superscripts_and_subscripts{0x2070, 0x209F}; -const block block::currency_symbols{0x20A0, 0x20CF}; -const block block::combining_diacritical_marks_for_symbols{0x20D0, 0x20FF}; -const block block::letterlike_symbols{0x2100, 0x214F}; -const block block::number_forms{0x2150, 0x218F}; -const block block::arrows{0x2190, 0x21FF}; -const block block::mathematical_operators{0x2200, 0x22FF}; -const block block::miscellaneous_technical{0x2300, 0x23FF}; -const block block::control_pictures{0x2400, 0x243F}; -const block block::optical_character_recognition{0x2440, 0x245F}; -const block block::enclosed_alphanumerics{0x2460, 0x24FF}; -const block block::box_drawing{0x2500, 0x257F}; -const block block::block_elements{0x2580, 0x259F}; -const block block::geometric_shapes{0x25A0, 0x25FF}; -const block block::miscellaneous_symbols{0x2600, 0x26FF}; -const block block::dingbats{0x2700, 0x27BF}; -const block block::miscellaneous_mathematical_symbols_a{0x27C0, 0x27EF}; -const block block::supplemental_arrows_a{0x27F0, 0x27FF}; -const block block::braille_patterns{0x2800, 0x28FF}; -const block block::supplemental_arrows_b{0x2900, 0x297F}; -const block block::miscellaneous_mathematical_symbols_b{0x2980, 0x29FF}; -const block block::supplemental_mathematical_operators{0x2A00, 0x2AFF}; -const block block::miscellaneous_symbols_and_arrows{0x2B00, 0x2BFF}; -const block block::glagolitic{0x2C00, 0x2C5F}; -const block block::latin_extended_c{0x2C60, 0x2C7F}; -const block block::coptic{0x2C80, 0x2CFF}; -const block block::georgian_supplement{0x2D00, 0x2D2F}; -const block block::tifinagh{0x2D30, 0x2D7F}; -const block block::ethiopic_extended{0x2D80, 0x2DDF}; -const block block::cyrillic_extended_a{0x2DE0, 0x2DFF}; -const block block::supplemental_punctuation{0x2E00, 0x2E7F}; -const block block::cjk_radicals_supplement{0x2E80, 0x2EFF}; -const block block::kangxi_radicals{0x2F00, 0x2FDF}; -const block block::ideographic_description_characters{0x2FF0, 0x2FFF}; -const block block::cjk_symbols_and_punctuation{0x3000, 0x303F}; -const block block::hiragana{0x3040, 0x309F}; -const block block::katakana{0x30A0, 0x30FF}; -const block block::bopomofo{0x3100, 0x312F}; -const block block::hangul_compatibility_jamo{0x3130, 0x318F}; -const block block::kanbun{0x3190, 0x319F}; -const block block::bopomofo_extended{0x31A0, 0x31BF}; -const block block::cjk_strokes{0x31C0, 0x31EF}; -const block block::katakana_phonetic_extensions{0x31F0, 0x31FF}; -const block block::enclosed_cjk_letters_and_months{0x3200, 0x32FF}; -const block block::cjk_compatibility{0x3300, 0x33FF}; -const block block::cjk_unified_ideographs_extension_a{0x3400, 0x4DBF}; -const block block::yijing_hexagram_symbols{0x4DC0, 0x4DFF}; -const block block::cjk_unified_ideographs{0x4E00, 0x9FFF}; -const block block::yi_syllables{0xA000, 0xA48F}; -const block block::yi_radicals{0xA490, 0xA4CF}; -const block block::lisu{0xA4D0, 0xA4FF}; -const block block::vai{0xA500, 0xA63F}; -const block block::cyrillic_extended_b{0xA640, 0xA69F}; -const block block::bamum{0xA6A0, 0xA6FF}; -const block block::modifier_tone_letters{0xA700, 0xA71F}; -const block block::latin_extended_d{0xA720, 0xA7FF}; -const block block::syloti_nagri{0xA800, 0xA82F}; -const block block::common_indic_number_forms{0xA830, 0xA83F}; -const block block::phags_pa{0xA840, 0xA87F}; -const block block::saurashtra{0xA880, 0xA8DF}; -const block block::devanagari_extended{0xA8E0, 0xA8FF}; -const block block::kayah_li{0xA900, 0xA92F}; -const block block::rejang{0xA930, 0xA95F}; -const block block::hangul_jamo_extended_a{0xA960, 0xA97F}; -const block block::javanese{0xA980, 0xA9DF}; -const block block::myanmar_extended_b{0xA9E0, 0xA9FF}; -const block block::cham{0xAA00, 0xAA5F}; -const block block::myanmar_extended_a{0xAA60, 0xAA7F}; -const block block::tai_viet{0xAA80, 0xAADF}; -const block block::meetei_mayek_extensions{0xAAE0, 0xAAFF}; -const block block::ethiopic_extended_a{0xAB00, 0xAB2F}; -const block block::latin_extended_e{0xAB30, 0xAB6F}; -const block block::cherokee_supplement{0xAB70, 0xABBF}; -const block block::meetei_mayek{0xABC0, 0xABFF}; -const block block::hangul_syllables{0xAC00, 0xD7AF}; -const block block::hangul_jamo_extended_b{0xD7B0, 0xD7FF}; -const block block::high_surrogates{0xD800, 0xDB7F}; -const block block::high_private_use_surrogates{0xDB80, 0xDBFF}; -const block block::low_surrogates{0xDC00, 0xDFFF}; -const block block::private_use_area{0xE000, 0xF8FF}; -const block block::cjk_compatibility_ideographs{0xF900, 0xFAFF}; -const block block::alphabetic_presentation_forms{0xFB00, 0xFB4F}; -const block block::arabic_presentation_forms_a{0xFB50, 0xFDFF}; -const block block::variation_selectors{0xFE00, 0xFE0F}; -const block block::vertical_forms{0xFE10, 0xFE1F}; -const block block::combining_half_marks{0xFE20, 0xFE2F}; -const block block::cjk_compatibility_forms{0xFE30, 0xFE4F}; -const block block::small_form_variants{0xFE50, 0xFE6F}; -const block block::arabic_presentation_forms_b{0xFE70, 0xFEFF}; -const block block::halfwidth_and_fullwidth_forms{0xFF00, 0xFFEF}; -const block block::specials{0xFFF0, 0xFFFF}; -const block block::linear_b_syllabary{0x10000, 0x1007F}; -const block block::linear_b_ideograms{0x10080, 0x100FF}; -const block block::aegean_numbers{0x10100, 0x1013F}; -const block block::ancient_greek_numbers{0x10140, 0x1018F}; -const block block::ancient_symbols{0x10190, 0x101CF}; -const block block::phaistos_disc{0x101D0, 0x101FF}; -const block block::lycian{0x10280, 0x1029F}; -const block block::carian{0x102A0, 0x102DF}; -const block block::coptic_epact_numbers{0x102E0, 0x102FF}; -const block block::old_italic{0x10300, 0x1032F}; -const block block::gothic{0x10330, 0x1034F}; -const block block::old_permic{0x10350, 0x1037F}; -const block block::ugaritic{0x10380, 0x1039F}; -const block block::old_persian{0x103A0, 0x103DF}; -const block block::deseret{0x10400, 0x1044F}; -const block block::shavian{0x10450, 0x1047F}; -const block block::osmanya{0x10480, 0x104AF}; -const block block::osage{0x104B0, 0x104FF}; -const block block::elbasan{0x10500, 0x1052F}; -const block block::caucasian_albanian{0x10530, 0x1056F}; -const block block::vithkuqi{0x10570, 0x105BF}; -const block block::linear_a{0x10600, 0x1077F}; -const block block::latin_extended_f{0x10780, 0x107BF}; -const block block::cypriot_syllabary{0x10800, 0x1083F}; -const block block::imperial_aramaic{0x10840, 0x1085F}; -const block block::palmyrene{0x10860, 0x1087F}; -const block block::nabataean{0x10880, 0x108AF}; -const block block::hatran{0x108E0, 0x108FF}; -const block block::phoenician{0x10900, 0x1091F}; -const block block::lydian{0x10920, 0x1093F}; -const block block::meroitic_hieroglyphs{0x10980, 0x1099F}; -const block block::meroitic_cursive{0x109A0, 0x109FF}; -const block block::kharoshthi{0x10A00, 0x10A5F}; -const block block::old_south_arabian{0x10A60, 0x10A7F}; -const block block::old_north_arabian{0x10A80, 0x10A9F}; -const block block::manichaean{0x10AC0, 0x10AFF}; -const block block::avestan{0x10B00, 0x10B3F}; -const block block::inscriptional_parthian{0x10B40, 0x10B5F}; -const block block::inscriptional_pahlavi{0x10B60, 0x10B7F}; -const block block::psalter_pahlavi{0x10B80, 0x10BAF}; -const block block::old_turkic{0x10C00, 0x10C4F}; -const block block::old_hungarian{0x10C80, 0x10CFF}; -const block block::hanifi_rohingya{0x10D00, 0x10D3F}; -const block block::rumi_numeral_symbols{0x10E60, 0x10E7F}; -const block block::yezidi{0x10E80, 0x10EBF}; -const block block::old_sogdian{0x10F00, 0x10F2F}; -const block block::sogdian{0x10F30, 0x10F6F}; -const block block::old_uyghur{0x10F70, 0x10FAF}; -const block block::chorasmian{0x10FB0, 0x10FDF}; -const block block::elymaic{0x10FE0, 0x10FFF}; -const block block::brahmi{0x11000, 0x1107F}; -const block block::kaithi{0x11080, 0x110CF}; -const block block::sora_sompeng{0x110D0, 0x110FF}; -const block block::chakma{0x11100, 0x1114F}; -const block block::mahajani{0x11150, 0x1117F}; -const block block::sharada{0x11180, 0x111DF}; -const block block::sinhala_archaic_numbers{0x111E0, 0x111FF}; -const block block::khojki{0x11200, 0x1124F}; -const block block::multani{0x11280, 0x112AF}; -const block block::khudawadi{0x112B0, 0x112FF}; -const block block::grantha{0x11300, 0x1137F}; -const block block::newa{0x11400, 0x1147F}; -const block block::tirhuta{0x11480, 0x114DF}; -const block block::siddham{0x11580, 0x115FF}; -const block block::modi{0x11600, 0x1165F}; -const block block::mongolian_supplement{0x11660, 0x1167F}; -const block block::takri{0x11680, 0x116CF}; -const block block::ahom{0x11700, 0x1174F}; -const block block::dogra{0x11800, 0x1184F}; -const block block::warang_citi{0x118A0, 0x118FF}; -const block block::dives_akuru{0x11900, 0x1195F}; -const block block::nandinagari{0x119A0, 0x119FF}; -const block block::zanabazar_square{0x11A00, 0x11A4F}; -const block block::soyombo{0x11A50, 0x11AAF}; -const block block::unified_canadian_aboriginal_syllabics_extended_a{0x11AB0, 0x11ABF}; -const block block::pau_cin_hau{0x11AC0, 0x11AFF}; -const block block::bhaiksuki{0x11C00, 0x11C6F}; -const block block::marchen{0x11C70, 0x11CBF}; -const block block::masaram_gondi{0x11D00, 0x11D5F}; -const block block::gunjala_gondi{0x11D60, 0x11DAF}; -const block block::makasar{0x11EE0, 0x11EFF}; -const block block::lisu_supplement{0x11FB0, 0x11FBF}; -const block block::tamil_supplement{0x11FC0, 0x11FFF}; -const block block::cuneiform{0x12000, 0x123FF}; -const block block::cuneiform_numbers_and_punctuation{0x12400, 0x1247F}; -const block block::early_dynastic_cuneiform{0x12480, 0x1254F}; -const block block::cypro_minoan{0x12F90, 0x12FFF}; -const block block::egyptian_hieroglyphs{0x13000, 0x1342F}; -const block block::egyptian_hieroglyph_format_controls{0x13430, 0x1343F}; -const block block::anatolian_hieroglyphs{0x14400, 0x1467F}; -const block block::bamum_supplement{0x16800, 0x16A3F}; -const block block::mro{0x16A40, 0x16A6F}; -const block block::tangsa{0x16A70, 0x16ACF}; -const block block::bassa_vah{0x16AD0, 0x16AFF}; -const block block::pahawh_hmong{0x16B00, 0x16B8F}; -const block block::medefaidrin{0x16E40, 0x16E9F}; -const block block::miao{0x16F00, 0x16F9F}; -const block block::ideographic_symbols_and_punctuation{0x16FE0, 0x16FFF}; -const block block::tangut{0x17000, 0x187FF}; -const block block::tangut_components{0x18800, 0x18AFF}; -const block block::khitan_small_script{0x18B00, 0x18CFF}; -const block block::tangut_supplement{0x18D00, 0x18D7F}; -const block block::kana_extended_b{0x1AFF0, 0x1AFFF}; -const block block::kana_supplement{0x1B000, 0x1B0FF}; -const block block::kana_extended_a{0x1B100, 0x1B12F}; -const block block::small_kana_extension{0x1B130, 0x1B16F}; -const block block::nushu{0x1B170, 0x1B2FF}; -const block block::duployan{0x1BC00, 0x1BC9F}; -const block block::shorthand_format_controls{0x1BCA0, 0x1BCAF}; -const block block::znamenny_musical_notation{0x1CF00, 0x1CFCF}; -const block block::byzantine_musical_symbols{0x1D000, 0x1D0FF}; -const block block::musical_symbols{0x1D100, 0x1D1FF}; -const block block::ancient_greek_musical_notation{0x1D200, 0x1D24F}; -const block block::mayan_numerals{0x1D2E0, 0x1D2FF}; -const block block::tai_xuan_jing_symbols{0x1D300, 0x1D35F}; -const block block::counting_rod_numerals{0x1D360, 0x1D37F}; -const block block::mathematical_alphanumeric_symbols{0x1D400, 0x1D7FF}; -const block block::sutton_signwriting{0x1D800, 0x1DAAF}; -const block block::latin_extended_g{0x1DF00, 0x1DFFF}; -const block block::glagolitic_supplement{0x1E000, 0x1E02F}; -const block block::nyiakeng_puachue_hmong{0x1E100, 0x1E14F}; -const block block::toto{0x1E290, 0x1E2BF}; -const block block::wancho{0x1E2C0, 0x1E2FF}; -const block block::ethiopic_extended_b{0x1E7E0, 0x1E7FF}; -const block block::mende_kikakui{0x1E800, 0x1E8DF}; -const block block::adlam{0x1E900, 0x1E95F}; -const block block::indic_siyaq_numbers{0x1EC70, 0x1ECBF}; -const block block::ottoman_siyaq_numbers{0x1ED00, 0x1ED4F}; -const block block::arabic_mathematical_alphabetic_symbols{0x1EE00, 0x1EEFF}; -const block block::mahjong_tiles{0x1F000, 0x1F02F}; -const block block::domino_tiles{0x1F030, 0x1F09F}; -const block block::playing_cards{0x1F0A0, 0x1F0FF}; -const block block::enclosed_alphanumeric_supplement{0x1F100, 0x1F1FF}; -const block block::enclosed_ideographic_supplement{0x1F200, 0x1F2FF}; -const block block::miscellaneous_symbols_and_pictographs{0x1F300, 0x1F5FF}; -const block block::emoticons{0x1F600, 0x1F64F}; -const block block::ornamental_dingbats{0x1F650, 0x1F67F}; -const block block::transport_and_map_symbols{0x1F680, 0x1F6FF}; -const block block::alchemical_symbols{0x1F700, 0x1F77F}; -const block block::geometric_shapes_extended{0x1F780, 0x1F7FF}; -const block block::supplemental_arrows_c{0x1F800, 0x1F8FF}; -const block block::supplemental_symbols_and_pictographs{0x1F900, 0x1F9FF}; -const block block::chess_symbols{0x1FA00, 0x1FA6F}; -const block block::symbols_and_pictographs_extended_a{0x1FA70, 0x1FAFF}; -const block block::symbols_for_legacy_computing{0x1FB00, 0x1FBFF}; -const block block::cjk_unified_ideographs_extension_b{0x20000, 0x2A6DF}; -const block block::cjk_unified_ideographs_extension_c{0x2A700, 0x2B73F}; -const block block::cjk_unified_ideographs_extension_d{0x2B740, 0x2B81F}; -const block block::cjk_unified_ideographs_extension_e{0x2B820, 0x2CEAF}; -const block block::cjk_unified_ideographs_extension_f{0x2CEB0, 0x2EBEF}; -const block block::cjk_compatibility_ideographs_supplement{0x2F800, 0x2FA1F}; -const block block::cjk_unified_ideographs_extension_g{0x30000, 0x3134F}; -const block block::tags{0xE0000, 0xE007F}; -const block block::variation_selectors_supplement{0xE0100, 0xE01EF}; -const block block::supplementary_private_use_area_a{0xF0000, 0xFFFFF}; -const block block::supplementary_private_use_area_b{0x100000, 0x10FFFF}; - -} // namespace unicode -} // namespace type diff --git a/src/engine/type/unicode/block.hpp b/src/engine/type/unicode/block.hpp index def8d2a..2263b7c 100644 --- a/src/engine/type/unicode/block.hpp +++ b/src/engine/type/unicode/block.hpp @@ -36,967 +36,967 @@ struct block /// Last character in the block. char32_t last; - - /// Basic Latin[g] - static const block basic_latin; +}; - /// Latin-1 Supplement[h] - static const block latin_1_supplement; +/// Basic Latin[g] +inline constexpr block basic_latin{0x0, 0x7F}; - /// Latin Extended-A - static const block latin_extended_a; +/// Latin-1 Supplement[h] +inline constexpr block latin_1_supplement{0x80, 0xFF}; - /// Latin Extended-B - static const block latin_extended_b; +/// Latin Extended-A +inline constexpr block latin_extended_a{0x0100, 0x017F}; - /// IPA Extensions - static const block ipa_extensions; +/// Latin Extended-B +inline constexpr block latin_extended_b{0x0180, 0x024F}; - /// Spacing Modifier Letters - static const block spacing_modifier_letters; +/// IPA Extensions +inline constexpr block ipa_extensions{0x0250, 0x02AF}; - /// Combining Diacritical Marks - static const block combining_diacritical_marks; +/// Spacing Modifier Letters +inline constexpr block spacing_modifier_letters{0x02B0, 0x02FF}; - /// Greek and Coptic - static const block greek_and_coptic; +/// Combining Diacritical Marks +inline constexpr block combining_diacritical_marks{0x0300, 0x036F}; - /// Cyrillic - static const block cyrillic; +/// Greek and Coptic +inline constexpr block greek_and_coptic{0x0370, 0x03FF}; - /// Cyrillic Supplement - static const block cyrillic_supplement; +/// Cyrillic +inline constexpr block cyrillic{0x0400, 0x04FF}; - /// Armenian - static const block armenian; +/// Cyrillic Supplement +inline constexpr block cyrillic_supplement{0x0500, 0x052F}; - /// Hebrew - static const block hebrew; +/// Armenian +inline constexpr block armenian{0x0530, 0x058F}; - /// Arabic - static const block arabic; +/// Hebrew +inline constexpr block hebrew{0x0590, 0x05FF}; - /// Syriac - static const block syriac; +/// Arabic +inline constexpr block arabic{0x0600, 0x06FF}; - /// Arabic Supplement - static const block arabic_supplement; +/// Syriac +inline constexpr block syriac{0x0700, 0x074F}; - /// Thaana - static const block thaana; +/// Arabic Supplement +inline constexpr block arabic_supplement{0x0750, 0x077F}; - /// NKo - static const block nko; +/// Thaana +inline constexpr block thaana{0x0780, 0x07BF}; - /// Samaritan - static const block samaritan; +/// NKo +inline constexpr block nko{0x07C0, 0x07FF}; - /// Mandaic - static const block mandaic; +/// Samaritan +inline constexpr block samaritan{0x0800, 0x083F}; - /// Syriac Supplement - static const block syriac_supplement; +/// Mandaic +inline constexpr block mandaic{0x0840, 0x085F}; - /// Arabic Extended-B - static const block arabic_extended_b; +/// Syriac Supplement +inline constexpr block syriac_supplement{0x0860, 0x086F}; - /// Arabic Extended-A - static const block arabic_extended_a; +/// Arabic Extended-B +inline constexpr block arabic_extended_b{0x0870, 0x089F}; - /// Devanagari - static const block devanagari; +/// Arabic Extended-A +inline constexpr block arabic_extended_a{0x08A0, 0x08FF}; - /// Bengali - static const block bengali; +/// Devanagari +inline constexpr block devanagari{0x0900, 0x097F}; - /// Gurmukhi - static const block gurmukhi; +/// Bengali +inline constexpr block bengali{0x0980, 0x09FF}; - /// Gujarati - static const block gujarati; +/// Gurmukhi +inline constexpr block gurmukhi{0x0A00, 0x0A7F}; - /// Oriya - static const block oriya; +/// Gujarati +inline constexpr block gujarati{0x0A80, 0x0AFF}; - /// Tamil - static const block tamil; +/// Oriya +inline constexpr block oriya{0x0B00, 0x0B7F}; - /// Telugu - static const block telugu; +/// Tamil +inline constexpr block tamil{0x0B80, 0x0BFF}; - /// Kannada - static const block kannada; +/// Telugu +inline constexpr block telugu{0x0C00, 0x0C7F}; - /// Malayalam - static const block malayalam; +/// Kannada +inline constexpr block kannada{0x0C80, 0x0CFF}; - /// Sinhala - static const block sinhala; +/// Malayalam +inline constexpr block malayalam{0x0D00, 0x0D7F}; - /// Thai - static const block thai; +/// Sinhala +inline constexpr block sinhala{0x0D80, 0x0DFF}; - /// Lao - static const block lao; +/// Thai +inline constexpr block thai{0x0E00, 0x0E7F}; - /// Tibetan - static const block tibetan; +/// Lao +inline constexpr block lao{0x0E80, 0x0EFF}; - /// Myanmar - static const block myanmar; +/// Tibetan +inline constexpr block tibetan{0x0F00, 0x0FFF}; - /// Georgian - static const block georgian; +/// Myanmar +inline constexpr block myanmar{0x1000, 0x109F}; - /// Hangul Jamo - static const block hangul_jamo; +/// Georgian +inline constexpr block georgian{0x10A0, 0x10FF}; - /// Ethiopic - static const block ethiopic; +/// Hangul Jamo +inline constexpr block hangul_jamo{0x1100, 0x11FF}; - /// Ethiopic Supplement - static const block ethiopic_supplement; +/// Ethiopic +inline constexpr block ethiopic{0x1200, 0x137F}; - /// Cherokee - static const block cherokee; +/// Ethiopic Supplement +inline constexpr block ethiopic_supplement{0x1380, 0x139F}; - /// Unified Canadian Aboriginal Syllabics - static const block unified_canadian_aboriginal_syllabics; +/// Cherokee +inline constexpr block cherokee{0x13A0, 0x13FF}; - /// Ogham - static const block ogham; +/// Unified Canadian Aboriginal Syllabics +inline constexpr block unified_canadian_aboriginal_syllabics{0x1400, 0x167F}; - /// Runic - static const block runic; +/// Ogham +inline constexpr block ogham{0x1680, 0x169F}; - /// Tagalog - static const block tagalog; +/// Runic +inline constexpr block runic{0x16A0, 0x16FF}; - /// Hanunoo - static const block hanunoo; +/// Tagalog +inline constexpr block tagalog{0x1700, 0x171F}; - /// Buhid - static const block buhid; +/// Hanunoo +inline constexpr block hanunoo{0x1720, 0x173F}; - /// Tagbanwa - static const block tagbanwa; +/// Buhid +inline constexpr block buhid{0x1740, 0x175F}; - /// Khmer - static const block khmer; +/// Tagbanwa +inline constexpr block tagbanwa{0x1760, 0x177F}; - /// Mongolian - static const block mongolian; +/// Khmer +inline constexpr block khmer{0x1780, 0x17FF}; - /// Unified Canadian Aboriginal Syllabics Extended - static const block unified_canadian_aboriginal_syllabics_extended; +/// Mongolian +inline constexpr block mongolian{0x1800, 0x18AF}; - /// Limbu - static const block limbu; +/// Unified Canadian Aboriginal Syllabics Extended +inline constexpr block unified_canadian_aboriginal_syllabics_extended{0x18B0, 0x18FF}; - /// Tai Le - static const block tai_le; +/// Limbu +inline constexpr block limbu{0x1900, 0x194F}; - /// New Tai Lue - static const block new_tai_lue; +/// Tai Le +inline constexpr block tai_le{0x1950, 0x197F}; - /// Khmer Symbols - static const block khmer_symbols; +/// New Tai Lue +inline constexpr block new_tai_lue{0x1980, 0x19DF}; - /// Buginese - static const block buginese; +/// Khmer Symbols +inline constexpr block khmer_symbols{0x19E0, 0x19FF}; - /// Tai Tham - static const block tai_tham; +/// Buginese +inline constexpr block buginese{0x1A00, 0x1A1F}; - /// Combining Diacritical Marks Extended - static const block combining_diacritical_marks_extended; +/// Tai Tham +inline constexpr block tai_tham{0x1A20, 0x1AAF}; - /// Balinese - static const block balinese; +/// Combining Diacritical Marks Extended +inline constexpr block combining_diacritical_marks_extended{0x1AB0, 0x1AFF}; - /// Sundanese - static const block sundanese; +/// Balinese +inline constexpr block balinese{0x1B00, 0x1B7F}; - /// Batak - static const block batak; +/// Sundanese +inline constexpr block sundanese{0x1B80, 0x1BBF}; - /// Lepcha - static const block lepcha; +/// Batak +inline constexpr block batak{0x1BC0, 0x1BFF}; - /// Ol Chiki - static const block ol_chiki; +/// Lepcha +inline constexpr block lepcha{0x1C00, 0x1C4F}; - /// Cyrillic Extended-C - static const block cyrillic_extended_c; +/// Ol Chiki +inline constexpr block ol_chiki{0x1C50, 0x1C7F}; - /// Georgian Extended - static const block georgian_extended; +/// Cyrillic Extended-C +inline constexpr block cyrillic_extended_c{0x1C80, 0x1C8F}; - /// Sundanese Supplement - static const block sundanese_supplement; +/// Georgian Extended +inline constexpr block georgian_extended{0x1C90, 0x1CBF}; - /// Vedic Extensions - static const block vedic_extensions; +/// Sundanese Supplement +inline constexpr block sundanese_supplement{0x1CC0, 0x1CCF}; - /// Phonetic Extensions - static const block phonetic_extensions; +/// Vedic Extensions +inline constexpr block vedic_extensions{0x1CD0, 0x1CFF}; - /// Phonetic Extensions Supplement - static const block phonetic_extensions_supplement; +/// Phonetic Extensions +inline constexpr block phonetic_extensions{0x1D00, 0x1D7F}; - /// Combining Diacritical Marks Supplement - static const block combining_diacritical_marks_supplement; +/// Phonetic Extensions Supplement +inline constexpr block phonetic_extensions_supplement{0x1D80, 0x1DBF}; - /// Latin Extended Additional - static const block latin_extended_additional; +/// Combining Diacritical Marks Supplement +inline constexpr block combining_diacritical_marks_supplement{0x1DC0, 0x1DFF}; - /// Greek Extended - static const block greek_extended; +/// Latin Extended Additional +inline constexpr block latin_extended_additional{0x1E00, 0x1EFF}; - /// General Punctuation - static const block general_punctuation; +/// Greek Extended +inline constexpr block greek_extended{0x1F00, 0x1FFF}; - /// Superscripts and Subscripts - static const block superscripts_and_subscripts; +/// General Punctuation +inline constexpr block general_punctuation{0x2000, 0x206F}; - /// Currency Symbols - static const block currency_symbols; +/// Superscripts and Subscripts +inline constexpr block superscripts_and_subscripts{0x2070, 0x209F}; - /// Combining Diacritical Marks for Symbols - static const block combining_diacritical_marks_for_symbols; +/// Currency Symbols +inline constexpr block currency_symbols{0x20A0, 0x20CF}; - /// Letterlike Symbols - static const block letterlike_symbols; +/// Combining Diacritical Marks for Symbols +inline constexpr block combining_diacritical_marks_for_symbols{0x20D0, 0x20FF}; - /// Number Forms - static const block number_forms; +/// Letterlike Symbols +inline constexpr block letterlike_symbols{0x2100, 0x214F}; - /// Arrows - static const block arrows; +/// Number Forms +inline constexpr block number_forms{0x2150, 0x218F}; - /// Mathematical Operators - static const block mathematical_operators; +/// Arrows +inline constexpr block arrows{0x2190, 0x21FF}; - /// Miscellaneous Technical - static const block miscellaneous_technical; +/// Mathematical Operators +inline constexpr block mathematical_operators{0x2200, 0x22FF}; - /// Control Pictures - static const block control_pictures; +/// Miscellaneous Technical +inline constexpr block miscellaneous_technical{0x2300, 0x23FF}; - /// Optical Character Recognition - static const block optical_character_recognition; +/// Control Pictures +inline constexpr block control_pictures{0x2400, 0x243F}; - /// Enclosed Alphanumerics - static const block enclosed_alphanumerics; +/// Optical Character Recognition +inline constexpr block optical_character_recognition{0x2440, 0x245F}; - /// Box Drawing - static const block box_drawing; +/// Enclosed Alphanumerics +inline constexpr block enclosed_alphanumerics{0x2460, 0x24FF}; - /// Block Elements - static const block block_elements; +/// Box Drawing +inline constexpr block box_drawing{0x2500, 0x257F}; - /// Geometric Shapes - static const block geometric_shapes; +/// Block Elements +inline constexpr block block_elements{0x2580, 0x259F}; - /// Miscellaneous Symbols - static const block miscellaneous_symbols; +/// Geometric Shapes +inline constexpr block geometric_shapes{0x25A0, 0x25FF}; - /// Dingbats - static const block dingbats; +/// Miscellaneous Symbols +inline constexpr block miscellaneous_symbols{0x2600, 0x26FF}; - /// Miscellaneous Mathematical Symbols-A - static const block miscellaneous_mathematical_symbols_a; +/// Dingbats +inline constexpr block dingbats{0x2700, 0x27BF}; - /// Supplemental Arrows-A - static const block supplemental_arrows_a; +/// Miscellaneous Mathematical Symbols-A +inline constexpr block miscellaneous_mathematical_symbols_a{0x27C0, 0x27EF}; - /// Braille Patterns - static const block braille_patterns; +/// Supplemental Arrows-A +inline constexpr block supplemental_arrows_a{0x27F0, 0x27FF}; - /// Supplemental Arrows-B - static const block supplemental_arrows_b; +/// Braille Patterns +inline constexpr block braille_patterns{0x2800, 0x28FF}; - /// Miscellaneous Mathematical Symbols-B - static const block miscellaneous_mathematical_symbols_b; +/// Supplemental Arrows-B +inline constexpr block supplemental_arrows_b{0x2900, 0x297F}; - /// Supplemental Mathematical Operators - static const block supplemental_mathematical_operators; +/// Miscellaneous Mathematical Symbols-B +inline constexpr block miscellaneous_mathematical_symbols_b{0x2980, 0x29FF}; - /// Miscellaneous Symbols and Arrows - static const block miscellaneous_symbols_and_arrows; +/// Supplemental Mathematical Operators +inline constexpr block supplemental_mathematical_operators{0x2A00, 0x2AFF}; - /// Glagolitic - static const block glagolitic; +/// Miscellaneous Symbols and Arrows +inline constexpr block miscellaneous_symbols_and_arrows{0x2B00, 0x2BFF}; - /// Latin Extended-C - static const block latin_extended_c; +/// Glagolitic +inline constexpr block glagolitic{0x2C00, 0x2C5F}; - /// Coptic - static const block coptic; +/// Latin Extended-C +inline constexpr block latin_extended_c{0x2C60, 0x2C7F}; - /// Georgian Supplement - static const block georgian_supplement; +/// Coptic +inline constexpr block coptic{0x2C80, 0x2CFF}; - /// Tifinagh - static const block tifinagh; +/// Georgian Supplement +inline constexpr block georgian_supplement{0x2D00, 0x2D2F}; - /// Ethiopic Extended - static const block ethiopic_extended; +/// Tifinagh +inline constexpr block tifinagh{0x2D30, 0x2D7F}; - /// Cyrillic Extended-A - static const block cyrillic_extended_a; +/// Ethiopic Extended +inline constexpr block ethiopic_extended{0x2D80, 0x2DDF}; - /// Supplemental Punctuation - static const block supplemental_punctuation; +/// Cyrillic Extended-A +inline constexpr block cyrillic_extended_a{0x2DE0, 0x2DFF}; - /// CJK Radicals Supplement - static const block cjk_radicals_supplement; +/// Supplemental Punctuation +inline constexpr block supplemental_punctuation{0x2E00, 0x2E7F}; - /// Kangxi Radicals - static const block kangxi_radicals; +/// CJK Radicals Supplement +inline constexpr block cjk_radicals_supplement{0x2E80, 0x2EFF}; - /// Ideographic Description Characters - static const block ideographic_description_characters; +/// Kangxi Radicals +inline constexpr block kangxi_radicals{0x2F00, 0x2FDF}; - /// CJK Symbols and Punctuation - static const block cjk_symbols_and_punctuation; +/// Ideographic Description Characters +inline constexpr block ideographic_description_characters{0x2FF0, 0x2FFF}; - /// Hiragana - static const block hiragana; +/// CJK Symbols and Punctuation +inline constexpr block cjk_symbols_and_punctuation{0x3000, 0x303F}; - /// Katakana - static const block katakana; +/// Hiragana +inline constexpr block hiragana{0x3040, 0x309F}; - /// Bopomofo - static const block bopomofo; +/// Katakana +inline constexpr block katakana{0x30A0, 0x30FF}; - /// Hangul Compatibility Jamo - static const block hangul_compatibility_jamo; +/// Bopomofo +inline constexpr block bopomofo{0x3100, 0x312F}; - /// Kanbun - static const block kanbun; +/// Hangul Compatibility Jamo +inline constexpr block hangul_compatibility_jamo{0x3130, 0x318F}; - /// Bopomofo Extended - static const block bopomofo_extended; +/// Kanbun +inline constexpr block kanbun{0x3190, 0x319F}; - /// CJK Strokes - static const block cjk_strokes; +/// Bopomofo Extended +inline constexpr block bopomofo_extended{0x31A0, 0x31BF}; - /// Katakana Phonetic Extensions - static const block katakana_phonetic_extensions; +/// CJK Strokes +inline constexpr block cjk_strokes{0x31C0, 0x31EF}; - /// Enclosed CJK Letters and Months - static const block enclosed_cjk_letters_and_months; +/// Katakana Phonetic Extensions +inline constexpr block katakana_phonetic_extensions{0x31F0, 0x31FF}; - /// CJK Compatibility - static const block cjk_compatibility; +/// Enclosed CJK Letters and Months +inline constexpr block enclosed_cjk_letters_and_months{0x3200, 0x32FF}; - /// CJK Unified Ideographs Extension A - static const block cjk_unified_ideographs_extension_a; +/// CJK Compatibility +inline constexpr block cjk_compatibility{0x3300, 0x33FF}; - /// Yijing Hexagram Symbols - static const block yijing_hexagram_symbols; +/// CJK Unified Ideographs Extension A +inline constexpr block cjk_unified_ideographs_extension_a{0x3400, 0x4DBF}; - /// CJK Unified Ideographs - static const block cjk_unified_ideographs; +/// Yijing Hexagram Symbols +inline constexpr block yijing_hexagram_symbols{0x4DC0, 0x4DFF}; - /// Yi Syllables - static const block yi_syllables; +/// CJK Unified Ideographs +inline constexpr block cjk_unified_ideographs{0x4E00, 0x9FFF}; - /// Yi Radicals - static const block yi_radicals; +/// Yi Syllables +inline constexpr block yi_syllables{0xA000, 0xA48F}; - /// Lisu - static const block lisu; +/// Yi Radicals +inline constexpr block yi_radicals{0xA490, 0xA4CF}; - /// Vai - static const block vai; +/// Lisu +inline constexpr block lisu{0xA4D0, 0xA4FF}; - /// Cyrillic Extended-B - static const block cyrillic_extended_b; +/// Vai +inline constexpr block vai{0xA500, 0xA63F}; - /// Bamum - static const block bamum; +/// Cyrillic Extended-B +inline constexpr block cyrillic_extended_b{0xA640, 0xA69F}; - /// Modifier Tone Letters - static const block modifier_tone_letters; +/// Bamum +inline constexpr block bamum{0xA6A0, 0xA6FF}; - /// Latin Extended-D - static const block latin_extended_d; +/// Modifier Tone Letters +inline constexpr block modifier_tone_letters{0xA700, 0xA71F}; - /// Syloti Nagri - static const block syloti_nagri; +/// Latin Extended-D +inline constexpr block latin_extended_d{0xA720, 0xA7FF}; - /// Common Indic Number Forms - static const block common_indic_number_forms; +/// Syloti Nagri +inline constexpr block syloti_nagri{0xA800, 0xA82F}; - /// Phags-pa - static const block phags_pa; +/// Common Indic Number Forms +inline constexpr block common_indic_number_forms{0xA830, 0xA83F}; - /// Saurashtra - static const block saurashtra; +/// Phags-pa +inline constexpr block phags_pa{0xA840, 0xA87F}; - /// Devanagari Extended - static const block devanagari_extended; +/// Saurashtra +inline constexpr block saurashtra{0xA880, 0xA8DF}; - /// Kayah Li - static const block kayah_li; +/// Devanagari Extended +inline constexpr block devanagari_extended{0xA8E0, 0xA8FF}; - /// Rejang - static const block rejang; +/// Kayah Li +inline constexpr block kayah_li{0xA900, 0xA92F}; - /// Hangul Jamo Extended-A - static const block hangul_jamo_extended_a; +/// Rejang +inline constexpr block rejang{0xA930, 0xA95F}; - /// Javanese - static const block javanese; +/// Hangul Jamo Extended-A +inline constexpr block hangul_jamo_extended_a{0xA960, 0xA97F}; - /// Myanmar Extended-B - static const block myanmar_extended_b; +/// Javanese +inline constexpr block javanese{0xA980, 0xA9DF}; - /// Cham - static const block cham; +/// Myanmar Extended-B +inline constexpr block myanmar_extended_b{0xA9E0, 0xA9FF}; - /// Myanmar Extended-A - static const block myanmar_extended_a; +/// Cham +inline constexpr block cham{0xAA00, 0xAA5F}; - /// Tai Viet - static const block tai_viet; +/// Myanmar Extended-A +inline constexpr block myanmar_extended_a{0xAA60, 0xAA7F}; - /// Meetei Mayek Extensions - static const block meetei_mayek_extensions; +/// Tai Viet +inline constexpr block tai_viet{0xAA80, 0xAADF}; - /// Ethiopic Extended-A - static const block ethiopic_extended_a; +/// Meetei Mayek Extensions +inline constexpr block meetei_mayek_extensions{0xAAE0, 0xAAFF}; - /// Latin Extended-E - static const block latin_extended_e; +/// Ethiopic Extended-A +inline constexpr block ethiopic_extended_a{0xAB00, 0xAB2F}; - /// Cherokee Supplement - static const block cherokee_supplement; +/// Latin Extended-E +inline constexpr block latin_extended_e{0xAB30, 0xAB6F}; - /// Meetei Mayek - static const block meetei_mayek; +/// Cherokee Supplement +inline constexpr block cherokee_supplement{0xAB70, 0xABBF}; - /// Hangul Syllables - static const block hangul_syllables; +/// Meetei Mayek +inline constexpr block meetei_mayek{0xABC0, 0xABFF}; - /// Hangul Jamo Extended-B - static const block hangul_jamo_extended_b; +/// Hangul Syllables +inline constexpr block hangul_syllables{0xAC00, 0xD7AF}; - /// High Surrogates - static const block high_surrogates; +/// Hangul Jamo Extended-B +inline constexpr block hangul_jamo_extended_b{0xD7B0, 0xD7FF}; - /// High Private Use Surrogates - static const block high_private_use_surrogates; +/// High Surrogates +inline constexpr block high_surrogates{0xD800, 0xDB7F}; - /// Low Surrogates - static const block low_surrogates; +/// High Private Use Surrogates +inline constexpr block high_private_use_surrogates{0xDB80, 0xDBFF}; - /// Private Use Area - static const block private_use_area; +/// Low Surrogates +inline constexpr block low_surrogates{0xDC00, 0xDFFF}; - /// CJK Compatibility Ideographs - static const block cjk_compatibility_ideographs; +/// Private Use Area +inline constexpr block private_use_area{0xE000, 0xF8FF}; - /// Alphabetic Presentation Forms - static const block alphabetic_presentation_forms; +/// CJK Compatibility Ideographs +inline constexpr block cjk_compatibility_ideographs{0xF900, 0xFAFF}; - /// Arabic Presentation Forms-A - static const block arabic_presentation_forms_a; +/// Alphabetic Presentation Forms +inline constexpr block alphabetic_presentation_forms{0xFB00, 0xFB4F}; - /// Variation Selectors - static const block variation_selectors; +/// Arabic Presentation Forms-A +inline constexpr block arabic_presentation_forms_a{0xFB50, 0xFDFF}; - /// Vertical Forms - static const block vertical_forms; +/// Variation Selectors +inline constexpr block variation_selectors{0xFE00, 0xFE0F}; - /// Combining Half Marks - static const block combining_half_marks; +/// Vertical Forms +inline constexpr block vertical_forms{0xFE10, 0xFE1F}; - /// CJK Compatibility Forms - static const block cjk_compatibility_forms; +/// Combining Half Marks +inline constexpr block combining_half_marks{0xFE20, 0xFE2F}; - /// Small Form Variants - static const block small_form_variants; +/// CJK Compatibility Forms +inline constexpr block cjk_compatibility_forms{0xFE30, 0xFE4F}; - /// Arabic Presentation Forms-B - static const block arabic_presentation_forms_b; +/// Small Form Variants +inline constexpr block small_form_variants{0xFE50, 0xFE6F}; - /// Halfwidth and Fullwidth Forms - static const block halfwidth_and_fullwidth_forms; +/// Arabic Presentation Forms-B +inline constexpr block arabic_presentation_forms_b{0xFE70, 0xFEFF}; - /// Specials - static const block specials; +/// Halfwidth and Fullwidth Forms +inline constexpr block halfwidth_and_fullwidth_forms{0xFF00, 0xFFEF}; - /// Linear B Syllabary - static const block linear_b_syllabary; +/// Specials +inline constexpr block specials{0xFFF0, 0xFFFF}; - /// Linear B Ideograms - static const block linear_b_ideograms; +/// Linear B Syllabary +inline constexpr block linear_b_syllabary{0x10000, 0x1007F}; - /// Aegean Numbers - static const block aegean_numbers; +/// Linear B Ideograms +inline constexpr block linear_b_ideograms{0x10080, 0x100FF}; - /// Ancient Greek Numbers - static const block ancient_greek_numbers; +/// Aegean Numbers +inline constexpr block aegean_numbers{0x10100, 0x1013F}; - /// Ancient Symbols - static const block ancient_symbols; +/// Ancient Greek Numbers +inline constexpr block ancient_greek_numbers{0x10140, 0x1018F}; - /// Phaistos Disc - static const block phaistos_disc; +/// Ancient Symbols +inline constexpr block ancient_symbols{0x10190, 0x101CF}; - /// Lycian - static const block lycian; +/// Phaistos Disc +inline constexpr block phaistos_disc{0x101D0, 0x101FF}; - /// Carian - static const block carian; +/// Lycian +inline constexpr block lycian{0x10280, 0x1029F}; - /// Coptic Epact Numbers - static const block coptic_epact_numbers; +/// Carian +inline constexpr block carian{0x102A0, 0x102DF}; - /// Old Italic - static const block old_italic; +/// Coptic Epact Numbers +inline constexpr block coptic_epact_numbers{0x102E0, 0x102FF}; - /// Gothic - static const block gothic; +/// Old Italic +inline constexpr block old_italic{0x10300, 0x1032F}; - /// Old Permic - static const block old_permic; +/// Gothic +inline constexpr block gothic{0x10330, 0x1034F}; - /// Ugaritic - static const block ugaritic; +/// Old Permic +inline constexpr block old_permic{0x10350, 0x1037F}; - /// Old Persian - static const block old_persian; +/// Ugaritic +inline constexpr block ugaritic{0x10380, 0x1039F}; - /// Deseret - static const block deseret; +/// Old Persian +inline constexpr block old_persian{0x103A0, 0x103DF}; - /// Shavian - static const block shavian; +/// Deseret +inline constexpr block deseret{0x10400, 0x1044F}; - /// Osmanya - static const block osmanya; +/// Shavian +inline constexpr block shavian{0x10450, 0x1047F}; - /// Osage - static const block osage; +/// Osmanya +inline constexpr block osmanya{0x10480, 0x104AF}; - /// Elbasan - static const block elbasan; +/// Osage +inline constexpr block osage{0x104B0, 0x104FF}; - /// Caucasian Albanian - static const block caucasian_albanian; +/// Elbasan +inline constexpr block elbasan{0x10500, 0x1052F}; - /// Vithkuqi - static const block vithkuqi; +/// Caucasian Albanian +inline constexpr block caucasian_albanian{0x10530, 0x1056F}; - /// Linear A - static const block linear_a; +/// Vithkuqi +inline constexpr block vithkuqi{0x10570, 0x105BF}; - /// Latin Extended-F - static const block latin_extended_f; +/// Linear A +inline constexpr block linear_a{0x10600, 0x1077F}; - /// Cypriot Syllabary - static const block cypriot_syllabary; +/// Latin Extended-F +inline constexpr block latin_extended_f{0x10780, 0x107BF}; - /// Imperial Aramaic - static const block imperial_aramaic; +/// Cypriot Syllabary +inline constexpr block cypriot_syllabary{0x10800, 0x1083F}; - /// Palmyrene - static const block palmyrene; +/// Imperial Aramaic +inline constexpr block imperial_aramaic{0x10840, 0x1085F}; - /// Nabataean - static const block nabataean; +/// Palmyrene +inline constexpr block palmyrene{0x10860, 0x1087F}; - /// Hatran - static const block hatran; +/// Nabataean +inline constexpr block nabataean{0x10880, 0x108AF}; - /// Phoenician - static const block phoenician; +/// Hatran +inline constexpr block hatran{0x108E0, 0x108FF}; - /// Lydian - static const block lydian; +/// Phoenician +inline constexpr block phoenician{0x10900, 0x1091F}; - /// Meroitic Hieroglyphs - static const block meroitic_hieroglyphs; +/// Lydian +inline constexpr block lydian{0x10920, 0x1093F}; - /// Meroitic Cursive - static const block meroitic_cursive; +/// Meroitic Hieroglyphs +inline constexpr block meroitic_hieroglyphs{0x10980, 0x1099F}; - /// Kharoshthi - static const block kharoshthi; +/// Meroitic Cursive +inline constexpr block meroitic_cursive{0x109A0, 0x109FF}; - /// Old South Arabian - static const block old_south_arabian; +/// Kharoshthi +inline constexpr block kharoshthi{0x10A00, 0x10A5F}; - /// Old North Arabian - static const block old_north_arabian; +/// Old South Arabian +inline constexpr block old_south_arabian{0x10A60, 0x10A7F}; - /// Manichaean - static const block manichaean; +/// Old North Arabian +inline constexpr block old_north_arabian{0x10A80, 0x10A9F}; - /// Avestan - static const block avestan; +/// Manichaean +inline constexpr block manichaean{0x10AC0, 0x10AFF}; - /// Inscriptional Parthian - static const block inscriptional_parthian; +/// Avestan +inline constexpr block avestan{0x10B00, 0x10B3F}; - /// Inscriptional Pahlavi - static const block inscriptional_pahlavi; +/// Inscriptional Parthian +inline constexpr block inscriptional_parthian{0x10B40, 0x10B5F}; - /// Psalter Pahlavi - static const block psalter_pahlavi; +/// Inscriptional Pahlavi +inline constexpr block inscriptional_pahlavi{0x10B60, 0x10B7F}; - /// Old Turkic - static const block old_turkic; +/// Psalter Pahlavi +inline constexpr block psalter_pahlavi{0x10B80, 0x10BAF}; - /// Old Hungarian - static const block old_hungarian; +/// Old Turkic +inline constexpr block old_turkic{0x10C00, 0x10C4F}; - /// Hanifi Rohingya - static const block hanifi_rohingya; +/// Old Hungarian +inline constexpr block old_hungarian{0x10C80, 0x10CFF}; - /// Rumi Numeral Symbols - static const block rumi_numeral_symbols; +/// Hanifi Rohingya +inline constexpr block hanifi_rohingya{0x10D00, 0x10D3F}; - /// Yezidi - static const block yezidi; +/// Rumi Numeral Symbols +inline constexpr block rumi_numeral_symbols{0x10E60, 0x10E7F}; - /// Old Sogdian - static const block old_sogdian; +/// Yezidi +inline constexpr block yezidi{0x10E80, 0x10EBF}; - /// Sogdian - static const block sogdian; +/// Old Sogdian +inline constexpr block old_sogdian{0x10F00, 0x10F2F}; - /// Old Uyghur - static const block old_uyghur; +/// Sogdian +inline constexpr block sogdian{0x10F30, 0x10F6F}; - /// Chorasmian - static const block chorasmian; +/// Old Uyghur +inline constexpr block old_uyghur{0x10F70, 0x10FAF}; - /// Elymaic - static const block elymaic; +/// Chorasmian +inline constexpr block chorasmian{0x10FB0, 0x10FDF}; - /// Brahmi - static const block brahmi; +/// Elymaic +inline constexpr block elymaic{0x10FE0, 0x10FFF}; - /// Kaithi - static const block kaithi; +/// Brahmi +inline constexpr block brahmi{0x11000, 0x1107F}; - /// Sora Sompeng - static const block sora_sompeng; +/// Kaithi +inline constexpr block kaithi{0x11080, 0x110CF}; - /// Chakma - static const block chakma; +/// Sora Sompeng +inline constexpr block sora_sompeng{0x110D0, 0x110FF}; - /// Mahajani - static const block mahajani; +/// Chakma +inline constexpr block chakma{0x11100, 0x1114F}; - /// Sharada - static const block sharada; +/// Mahajani +inline constexpr block mahajani{0x11150, 0x1117F}; - /// Sinhala Archaic Numbers - static const block sinhala_archaic_numbers; +/// Sharada +inline constexpr block sharada{0x11180, 0x111DF}; - /// Khojki - static const block khojki; +/// Sinhala Archaic Numbers +inline constexpr block sinhala_archaic_numbers{0x111E0, 0x111FF}; - /// Multani - static const block multani; +/// Khojki +inline constexpr block khojki{0x11200, 0x1124F}; - /// Khudawadi - static const block khudawadi; +/// Multani +inline constexpr block multani{0x11280, 0x112AF}; - /// Grantha - static const block grantha; +/// Khudawadi +inline constexpr block khudawadi{0x112B0, 0x112FF}; - /// Newa - static const block newa; +/// Grantha +inline constexpr block grantha{0x11300, 0x1137F}; - /// Tirhuta - static const block tirhuta; +/// Newa +inline constexpr block newa{0x11400, 0x1147F}; - /// Siddham - static const block siddham; +/// Tirhuta +inline constexpr block tirhuta{0x11480, 0x114DF}; - /// Modi - static const block modi; +/// Siddham +inline constexpr block siddham{0x11580, 0x115FF}; - /// Mongolian Supplement - static const block mongolian_supplement; +/// Modi +inline constexpr block modi{0x11600, 0x1165F}; - /// Takri - static const block takri; +/// Mongolian Supplement +inline constexpr block mongolian_supplement{0x11660, 0x1167F}; - /// Ahom - static const block ahom; +/// Takri +inline constexpr block takri{0x11680, 0x116CF}; - /// Dogra - static const block dogra; +/// Ahom +inline constexpr block ahom{0x11700, 0x1174F}; - /// Warang Citi - static const block warang_citi; +/// Dogra +inline constexpr block dogra{0x11800, 0x1184F}; - /// Dives Akuru - static const block dives_akuru; +/// Warang Citi +inline constexpr block warang_citi{0x118A0, 0x118FF}; - /// Nandinagari - static const block nandinagari; +/// Dives Akuru +inline constexpr block dives_akuru{0x11900, 0x1195F}; - /// Zanabazar Square - static const block zanabazar_square; +/// Nandinagari +inline constexpr block nandinagari{0x119A0, 0x119FF}; - /// Soyombo - static const block soyombo; +/// Zanabazar Square +inline constexpr block zanabazar_square{0x11A00, 0x11A4F}; - /// Unified Canadian Aboriginal Syllabics Extended-A - static const block unified_canadian_aboriginal_syllabics_extended_a; +/// Soyombo +inline constexpr block soyombo{0x11A50, 0x11AAF}; - /// Pau Cin Hau - static const block pau_cin_hau; +/// Unified Canadian Aboriginal Syllabics Extended-A +inline constexpr block unified_canadian_aboriginal_syllabics_extended_a{0x11AB0, 0x11ABF}; - /// Bhaiksuki - static const block bhaiksuki; +/// Pau Cin Hau +inline constexpr block pau_cin_hau{0x11AC0, 0x11AFF}; - /// Marchen - static const block marchen; +/// Bhaiksuki +inline constexpr block bhaiksuki{0x11C00, 0x11C6F}; - /// Masaram Gondi - static const block masaram_gondi; +/// Marchen +inline constexpr block marchen{0x11C70, 0x11CBF}; - /// Gunjala Gondi - static const block gunjala_gondi; +/// Masaram Gondi +inline constexpr block masaram_gondi{0x11D00, 0x11D5F}; - /// Makasar - static const block makasar; +/// Gunjala Gondi +inline constexpr block gunjala_gondi{0x11D60, 0x11DAF}; - /// Lisu Supplement - static const block lisu_supplement; +/// Makasar +inline constexpr block makasar{0x11EE0, 0x11EFF}; - /// Tamil Supplement - static const block tamil_supplement; +/// Lisu Supplement +inline constexpr block lisu_supplement{0x11FB0, 0x11FBF}; - /// Cuneiform - static const block cuneiform; +/// Tamil Supplement +inline constexpr block tamil_supplement{0x11FC0, 0x11FFF}; - /// Cuneiform Numbers and Punctuation - static const block cuneiform_numbers_and_punctuation; +/// Cuneiform +inline constexpr block cuneiform{0x12000, 0x123FF}; - /// Early Dynastic Cuneiform - static const block early_dynastic_cuneiform; +/// Cuneiform Numbers and Punctuation +inline constexpr block cuneiform_numbers_and_punctuation{0x12400, 0x1247F}; - /// Cypro-Minoan - static const block cypro_minoan; +/// Early Dynastic Cuneiform +inline constexpr block early_dynastic_cuneiform{0x12480, 0x1254F}; - /// Egyptian Hieroglyphs - static const block egyptian_hieroglyphs; +/// Cypro-Minoan +inline constexpr block cypro_minoan{0x12F90, 0x12FFF}; - /// Egyptian Hieroglyph Format Controls - static const block egyptian_hieroglyph_format_controls; +/// Egyptian Hieroglyphs +inline constexpr block egyptian_hieroglyphs{0x13000, 0x1342F}; - /// Anatolian Hieroglyphs - static const block anatolian_hieroglyphs; +/// Egyptian Hieroglyph Format Controls +inline constexpr block egyptian_hieroglyph_format_controls{0x13430, 0x1343F}; - /// Bamum Supplement - static const block bamum_supplement; +/// Anatolian Hieroglyphs +inline constexpr block anatolian_hieroglyphs{0x14400, 0x1467F}; - /// Mro - static const block mro; +/// Bamum Supplement +inline constexpr block bamum_supplement{0x16800, 0x16A3F}; - /// Tangsa - static const block tangsa; +/// Mro +inline constexpr block mro{0x16A40, 0x16A6F}; - /// Bassa Vah - static const block bassa_vah; +/// Tangsa +inline constexpr block tangsa{0x16A70, 0x16ACF}; - /// Pahawh Hmong - static const block pahawh_hmong; +/// Bassa Vah +inline constexpr block bassa_vah{0x16AD0, 0x16AFF}; - /// Medefaidrin - static const block medefaidrin; +/// Pahawh Hmong +inline constexpr block pahawh_hmong{0x16B00, 0x16B8F}; - /// Miao - static const block miao; +/// Medefaidrin +inline constexpr block medefaidrin{0x16E40, 0x16E9F}; - /// Ideographic Symbols and Punctuation - static const block ideographic_symbols_and_punctuation; +/// Miao +inline constexpr block miao{0x16F00, 0x16F9F}; - /// Tangut - static const block tangut; +/// Ideographic Symbols and Punctuation +inline constexpr block ideographic_symbols_and_punctuation{0x16FE0, 0x16FFF}; - /// Tangut Components - static const block tangut_components; +/// Tangut +inline constexpr block tangut{0x17000, 0x187FF}; - /// Khitan Small Script - static const block khitan_small_script; +/// Tangut Components +inline constexpr block tangut_components{0x18800, 0x18AFF}; - /// Tangut Supplement - static const block tangut_supplement; +/// Khitan Small Script +inline constexpr block khitan_small_script{0x18B00, 0x18CFF}; - /// Kana Extended-B - static const block kana_extended_b; +/// Tangut Supplement +inline constexpr block tangut_supplement{0x18D00, 0x18D7F}; - /// Kana Supplement - static const block kana_supplement; +/// Kana Extended-B +inline constexpr block kana_extended_b{0x1AFF0, 0x1AFFF}; - /// Kana Extended-A - static const block kana_extended_a; +/// Kana Supplement +inline constexpr block kana_supplement{0x1B000, 0x1B0FF}; - /// Small Kana Extension - static const block small_kana_extension; +/// Kana Extended-A +inline constexpr block kana_extended_a{0x1B100, 0x1B12F}; - /// Nushu - static const block nushu; +/// Small Kana Extension +inline constexpr block small_kana_extension{0x1B130, 0x1B16F}; - /// Duployan - static const block duployan; +/// Nushu +inline constexpr block nushu{0x1B170, 0x1B2FF}; - /// Shorthand Format Controls - static const block shorthand_format_controls; +/// Duployan +inline constexpr block duployan{0x1BC00, 0x1BC9F}; - /// Znamenny Musical Notation - static const block znamenny_musical_notation; +/// Shorthand Format Controls +inline constexpr block shorthand_format_controls{0x1BCA0, 0x1BCAF}; - /// Byzantine Musical Symbols - static const block byzantine_musical_symbols; +/// Znamenny Musical Notation +inline constexpr block znamenny_musical_notation{0x1CF00, 0x1CFCF}; - /// Musical Symbols - static const block musical_symbols; +/// Byzantine Musical Symbols +inline constexpr block byzantine_musical_symbols{0x1D000, 0x1D0FF}; - /// Ancient Greek Musical Notation - static const block ancient_greek_musical_notation; +/// Musical Symbols +inline constexpr block musical_symbols{0x1D100, 0x1D1FF}; - /// Mayan Numerals - static const block mayan_numerals; +/// Ancient Greek Musical Notation +inline constexpr block ancient_greek_musical_notation{0x1D200, 0x1D24F}; - /// Tai Xuan Jing Symbols - static const block tai_xuan_jing_symbols; +/// Mayan Numerals +inline constexpr block mayan_numerals{0x1D2E0, 0x1D2FF}; - /// Counting Rod Numerals - static const block counting_rod_numerals; +/// Tai Xuan Jing Symbols +inline constexpr block tai_xuan_jing_symbols{0x1D300, 0x1D35F}; - /// Mathematical Alphanumeric Symbols - static const block mathematical_alphanumeric_symbols; +/// Counting Rod Numerals +inline constexpr block counting_rod_numerals{0x1D360, 0x1D37F}; - /// Sutton SignWriting - static const block sutton_signwriting; +/// Mathematical Alphanumeric Symbols +inline constexpr block mathematical_alphanumeric_symbols{0x1D400, 0x1D7FF}; - /// Latin Extended-G - static const block latin_extended_g; +/// Sutton SignWriting +inline constexpr block sutton_signwriting{0x1D800, 0x1DAAF}; - /// Glagolitic Supplement - static const block glagolitic_supplement; +/// Latin Extended-G +inline constexpr block latin_extended_g{0x1DF00, 0x1DFFF}; - /// Nyiakeng Puachue Hmong - static const block nyiakeng_puachue_hmong; +/// Glagolitic Supplement +inline constexpr block glagolitic_supplement{0x1E000, 0x1E02F}; - /// Toto - static const block toto; +/// Nyiakeng Puachue Hmong +inline constexpr block nyiakeng_puachue_hmong{0x1E100, 0x1E14F}; - /// Wancho - static const block wancho; +/// Toto +inline constexpr block toto{0x1E290, 0x1E2BF}; - /// Ethiopic Extended-B - static const block ethiopic_extended_b; +/// Wancho +inline constexpr block wancho{0x1E2C0, 0x1E2FF}; - /// Mende Kikakui - static const block mende_kikakui; +/// Ethiopic Extended-B +inline constexpr block ethiopic_extended_b{0x1E7E0, 0x1E7FF}; - /// Adlam - static const block adlam; +/// Mende Kikakui +inline constexpr block mende_kikakui{0x1E800, 0x1E8DF}; - /// Indic Siyaq Numbers - static const block indic_siyaq_numbers; +/// Adlam +inline constexpr block adlam{0x1E900, 0x1E95F}; - /// Ottoman Siyaq Numbers - static const block ottoman_siyaq_numbers; +/// Indic Siyaq Numbers +inline constexpr block indic_siyaq_numbers{0x1EC70, 0x1ECBF}; - /// Arabic Mathematical Alphabetic Symbols - static const block arabic_mathematical_alphabetic_symbols; +/// Ottoman Siyaq Numbers +inline constexpr block ottoman_siyaq_numbers{0x1ED00, 0x1ED4F}; - /// Mahjong Tiles - static const block mahjong_tiles; +/// Arabic Mathematical Alphabetic Symbols +inline constexpr block arabic_mathematical_alphabetic_symbols{0x1EE00, 0x1EEFF}; - /// Domino Tiles - static const block domino_tiles; +/// Mahjong Tiles +inline constexpr block mahjong_tiles{0x1F000, 0x1F02F}; - /// Playing Cards - static const block playing_cards; +/// Domino Tiles +inline constexpr block domino_tiles{0x1F030, 0x1F09F}; - /// Enclosed Alphanumeric Supplement - static const block enclosed_alphanumeric_supplement; +/// Playing Cards +inline constexpr block playing_cards{0x1F0A0, 0x1F0FF}; - /// Enclosed Ideographic Supplement - static const block enclosed_ideographic_supplement; +/// Enclosed Alphanumeric Supplement +inline constexpr block enclosed_alphanumeric_supplement{0x1F100, 0x1F1FF}; - /// Miscellaneous Symbols and Pictographs - static const block miscellaneous_symbols_and_pictographs; +/// Enclosed Ideographic Supplement +inline constexpr block enclosed_ideographic_supplement{0x1F200, 0x1F2FF}; - /// Emoticons - static const block emoticons; +/// Miscellaneous Symbols and Pictographs +inline constexpr block miscellaneous_symbols_and_pictographs{0x1F300, 0x1F5FF}; - /// Ornamental Dingbats - static const block ornamental_dingbats; +/// Emoticons +inline constexpr block emoticons{0x1F600, 0x1F64F}; - /// Transport and Map Symbols - static const block transport_and_map_symbols; +/// Ornamental Dingbats +inline constexpr block ornamental_dingbats{0x1F650, 0x1F67F}; - /// Alchemical Symbols - static const block alchemical_symbols; +/// Transport and Map Symbols +inline constexpr block transport_and_map_symbols{0x1F680, 0x1F6FF}; - /// Geometric Shapes Extended - static const block geometric_shapes_extended; +/// Alchemical Symbols +inline constexpr block alchemical_symbols{0x1F700, 0x1F77F}; - /// Supplemental Arrows-C - static const block supplemental_arrows_c; +/// Geometric Shapes Extended +inline constexpr block geometric_shapes_extended{0x1F780, 0x1F7FF}; - /// Supplemental Symbols and Pictographs - static const block supplemental_symbols_and_pictographs; +/// Supplemental Arrows-C +inline constexpr block supplemental_arrows_c{0x1F800, 0x1F8FF}; - /// Chess Symbols - static const block chess_symbols; +/// Supplemental Symbols and Pictographs +inline constexpr block supplemental_symbols_and_pictographs{0x1F900, 0x1F9FF}; - /// Symbols and Pictographs Extended-A - static const block symbols_and_pictographs_extended_a; +/// Chess Symbols +inline constexpr block chess_symbols{0x1FA00, 0x1FA6F}; - /// Symbols for Legacy Computing - static const block symbols_for_legacy_computing; +/// Symbols and Pictographs Extended-A +inline constexpr block symbols_and_pictographs_extended_a{0x1FA70, 0x1FAFF}; - /// CJK Unified Ideographs Extension B - static const block cjk_unified_ideographs_extension_b; +/// Symbols for Legacy Computing +inline constexpr block symbols_for_legacy_computing{0x1FB00, 0x1FBFF}; - /// CJK Unified Ideographs Extension C - static const block cjk_unified_ideographs_extension_c; +/// CJK Unified Ideographs Extension B +inline constexpr block cjk_unified_ideographs_extension_b{0x20000, 0x2A6DF}; - /// CJK Unified Ideographs Extension D - static const block cjk_unified_ideographs_extension_d; +/// CJK Unified Ideographs Extension C +inline constexpr block cjk_unified_ideographs_extension_c{0x2A700, 0x2B73F}; - /// CJK Unified Ideographs Extension E - static const block cjk_unified_ideographs_extension_e; +/// CJK Unified Ideographs Extension D +inline constexpr block cjk_unified_ideographs_extension_d{0x2B740, 0x2B81F}; - /// CJK Unified Ideographs Extension F - static const block cjk_unified_ideographs_extension_f; +/// CJK Unified Ideographs Extension E +inline constexpr block cjk_unified_ideographs_extension_e{0x2B820, 0x2CEAF}; - /// CJK Compatibility Ideographs Supplement - static const block cjk_compatibility_ideographs_supplement; +/// CJK Unified Ideographs Extension F +inline constexpr block cjk_unified_ideographs_extension_f{0x2CEB0, 0x2EBEF}; - /// CJK Unified Ideographs Extension G - static const block cjk_unified_ideographs_extension_g; +/// CJK Compatibility Ideographs Supplement +inline constexpr block cjk_compatibility_ideographs_supplement{0x2F800, 0x2FA1F}; - /// Tags - static const block tags; +/// CJK Unified Ideographs Extension G +inline constexpr block cjk_unified_ideographs_extension_g{0x30000, 0x3134F}; - /// Variation Selectors Supplement - static const block variation_selectors_supplement; +/// Tags +inline constexpr block tags{0xE0000, 0xE007F}; - /// Supplementary Private Use Area-A - static const block supplementary_private_use_area_a; +/// Variation Selectors Supplement +inline constexpr block variation_selectors_supplement{0xE0100, 0xE01EF}; - /// Supplementary Private Use Area-B - static const block supplementary_private_use_area_b; -}; +/// Supplementary Private Use Area-A +inline constexpr block supplementary_private_use_area_a{0xF0000, 0xFFFFF}; + +/// Supplementary Private Use Area-B +inline constexpr block supplementary_private_use_area_b{0x100000, 0x10FFFF}; } // namespace unicode } // namespace type diff --git a/src/engine/type/unicode/convert.hpp b/src/engine/type/unicode/convert.hpp index d089f7b..490dcab 100644 --- a/src/engine/type/unicode/convert.hpp +++ b/src/engine/type/unicode/convert.hpp @@ -31,7 +31,7 @@ namespace unicode { * @param u8 UTF-8 string. * @return UTF-32 string. */ -std::u32string u32(const std::string& u8); +[[nodiscard]] std::u32string u32(const std::string& u8); /** * Converts a UTF-32 string to UTF-8. @@ -39,7 +39,7 @@ std::u32string u32(const std::string& u8); * @param u32 UTF-32 string. * @return UTF-8 string. */ -std::string u8(const std::u32string& u32); +[[nodiscard]] std::string u8(const std::u32string& u32); } // namespace unicode } // namespace type