Skip to content
  • Brad King's avatar
    String: Add a custom string type · ff69763c
    Brad King authored
    Create a `cm::String` type that holds a view of a string buffer and
    optionally shares ownership of the buffer.  Instances can either
    borrow longer-lived storage (e.g. static storage of string literals)
    or internally own a `std::string` instance.  In the latter case,
    share ownership with copies and substrings.  Allocate a new internal
    string only on operations that require mutation.
    
    This will allow us to recover string sharing semantics that we
    used to get from C++98 std::string copy-on-write implementations.
    Such implementations are not allowed by C++11 so code our own in
    a custom string type instead.
    ff69763c