Burning Silicon: Speed for transcoding in C++23
Getting speed, customization, and flexibility out of a text interface for C++23.
<p>Text handling in the C and C++ Standards is a tale of legacy encodings and a demonstration of decisions made that work at the moment doesn't scale up to the needs of tomorrow. With Unicode on the horizon, C++20 prepared fundamental changes such as char8_t and polishing things to make it easier to catch bad conversions and logical program errors when working with encoded text. Still, the landscape has poor support for transcoding from one encoding to the other, let alone talking about higher-level algorithms without pulling in heavyweight dependencies whose age shows in terms of design and usability.</p> <p>We can do better.</p> <p>This talk explores the fundamentals of a new design for text handling in C++ that abstracts away encoding and lets a user work with units of data meaningful to their application. It will dive into some of the tenants of text encoding, the flexibility of its error handling mechanism, and a few ways that the API enables uncompromising speed.</p>