[cfe-dev] using raw_ostream in ASTConsumers

Chris Lattner clattner at apple.com
Sat Aug 23 12:51:00 PDT 2008


On Aug 23, 2008, at 11:35 AM, Chris Lattner wrote:
>> I've found these problems:
>> - raw_stream is currently not supports pointer printing. << (void*)X
>
> This should be easy to add, just add a method to raw_stream?

I didn't add this, can you add it?

>> - not supports field width like: << std::setw(3) << ... (this is in
>> file: CFG.cpp line 1485)
>> - not supports hexa printing like: <<std::hex << value (this is in
>> file: StmtPrinter.cpp line 550)
>
> Adding a full set of formatting is a non-trival job, and we don't want
> to follow the lead of iostreams.  I'll see if I can hack something in
> quickly.

Okay, you can now do stuff like this:

OS << "whatever" << format("%4.3f some hex thing 0x%X", mydouble, 255)  
<< " blah";

This is efficient (no temporary strings etc), and you can use any  
(portable) printf formatting without penalty.

-Chris



More information about the cfe-dev mailing list