Boost logo

Boost :

From: Vinnie Falco (vinnie.falco_at_[hidden])
Date: 2020-06-12 14:12:30


On Fri, Jun 12, 2020 at 6:40 AM Niall Douglas via Boost
<boost_at_[hidden]> wrote:
> 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/f47fbeb1a54b832221a35c17912febb7a2c3a317/include/boost/json/string.hpp#L57>

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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk