Catch ⬆️: Unicode for C++23
summary
C++ is gaining a concrete Unicode plan for C++23: Study Group 16 standardizes char16_t as UTF‑16 and char32_t as UTF‑32 after surveying ~100 compilers, defines encoding objects and container adapters (basic_text, text_view), and specifies three conversion paths (slow per‑code‑point, direct transcode, and SIMD‑style bulk). Existing toolchain gaps include the streams one‑to‑one rule and clunky codecvt/locale APIs; major codebases use ad hoc parsers (Chrome, Firefox, Qt) and ICU is powerful but awkward, while Boost.Text and encoding2rs offer usable libraries and utf_utils_sse_convert supplies fast SIMD conversion.
AI-written summary · about
chapters (52)
- 0:00Introduction
- 0:46Story of Unicode
- 1:29What makes text inversion hard
- 3:47What is the encoding
- 5:15Unicode literals
- 6:11One to one restriction
- 7:46Virtual functions
- 9:31Unit conversion functions
- 11:42SIMD
- 12:21MV2 Wide Character
- 16:36ThirdParty Libraries
- 17:01ICU
- 18:32Other libraries
- 19:48Ups and Downs
- 21:43Iterators
- 23:05Stand Ranges
- 23:45Henrysaponin
- 25:05Landscape
- 25:17Standout text
- 25:50Container adapter
- 26:16Text view
- 26:30Basic text view
- 26:46Narrow execution
- 27:01Flexibility
- 28:21Implementation
- 28:54User Interface
- 29:27Networking
- 30:28Un unbounded view
- 31:42Encoding beauty
- 32:29Helper Types
- 32:46Result Types
- 33:02FunctionRef
- 34:27Gory
- 34:58Code Unit
- 35:40Codepoints
- 36:14State
- 36:56EncodeDecode
- 37:46OutputIterator
- 40:25DecodeInjective
- 41:02Static assert
- 42:48Overview
- 43:52Beyond the Objects
- 44:10Speed
- 46:59Code Snapshot
- 48:21Decode
- 50:42Encode decode
- 52:10TextTranscode
- 52:52Bob Steagle
- 53:18Use what you already have
- 53:52They get the nice
- 55:30Sponsorship
- 57:18Questions
related talks
01h 24mUnicode: From First Principles to Practical Implementation
01h 10m“Fast Conversion From UTF-8 with C++, DFAs, and SSE Intrinsics”
45mI ♥ Unicode
56mUnicode - going down the rabbit hole
01h 10mInteresting Characters
59m“Unicode Strings: Why the Implementation Matters”
05mLightning Talks: -std=c++20 -- Will This C++ Code Compile?
51mCharBusters - 10 Unicode Myths
