On Mon, Sep 19, 2016 at 1:38 PM Sean Callanan <scalla...@apple.com> wrote:
> I'll only comment on the stuff that affects me. > > > 1. Use llvm streams instead of lldb::StreamString > 1. Supports output re-targeting (stderr, stdout, std::string, etc), > printf style formatting, and type-safe streaming operators. > 2. Interoperates nicely with many existing llvm utility classes > 3. Risk: 4 > 4. Impact: 5 > 5. Difficulty / Effort: 7 > > > I don't like that llvm's stringstream needs to be babied to make it > produce its string. You have to wrap it and then flush it and then read > the string. Maybe a subclass could be made that wraps its own string and > flushes automatically on read? > You do have to wrap it. But if you call llvm::raw_string_ostream::str(), it will internally flush before it returns the thing. So if you write: std::string s; llvm::raw_string_ostream stream(s); stream << "foo"; return stream.str(); then the code will be correct. It's still a bit more annoying then if the string were automatically part of the stream though, so there's probably a clean way to design a version of it that owns the string.
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev