On Fri, Jun 12, 2020 at 6:40 AM Niall Douglas via Boost
Zach, could you take this opportunity to compare your choice of string design with the string designs implemented by each of the following libraries please?
- LLVM strings, string refs, twines etc. - Abseil's strings, string pieces. - Folly's strings, string pieces and ranges. - CopperSpice's CsString.
There's also boost::json::string, which resembles std::string except that: * It is not a class template. * Most of the function definitions are in a library TU rather than a header. * It uses boost::json::storage_ptr instead of Allocator or std::pmr::memory_resource* * Some function signatures have been collapsed or adjusted for simplicity, in ways that would be desirable for std::string except that it would break ABI. json::string: https://github.com/CPPAlliance/json/blob/f47fbeb1a54b832221a35c17912febb7a2c... json::storage_ptr http://vinniefalco.github.io/doc/json/json/usage/allocators.html http://vinniefalco.github.io/doc/json/json/ref/boost__json__storage_ptr.html Regards