Slides:
https://github.com/boostcon/cppnow_presentations_2017/blob/master/05-16-2017_tuesday/rethinking_strings__mark_zeren__cppnow_05-16-2017.pdfVideo:
https://www.youtube.com/watch?v=OMbwbXZWtDMAt VMware `std::string` has served us well. We have built and shipped large
codebases around it. However, that experience has also taught us some of its
shortcomings. Now is a good time to take a step back and re-evaluate the string
design space. Why now? The context has changed dramatically since the dawn of
`basic_string`. The UTF family is the de facto encoding standard. 64bit
addressing will last much longer, in a much wider range of devices, than prior
addressing modes. We have `constexpr`, and soon will have ranges and
reflection. The library now includes `string_view`, all three major STL
implementations use the small string optimization, and Eric Neibler has given us
`folly::FixedString`. A `std::text_view` proposal is in flight. Even
`std::optional`, and smart pointers have some something to say about strings.
In this talk we will dissect strings along dimensions such as storage duration,
encoding, mutability, etc., and then see if we can knit it all back together
into a cohesive, modern, set of library and language features. I won't have all
the answers, so show up and speak up!