On 11/20/12, Diego Novillo <dnovi...@google.com> wrote:
> On Nov 20, 2012 Basile Starynkevitch <bas...@starynkevitch.net> wrote:
> > On Tue, Nov 20, 2012 at 11:24:40AM -0800, Lawrence Crowl wrote:
> > > function (FILE *, item_to_dump, formatting)
> > > function (item_to_dump, formatting)
> >
> > Since we have switched to C++, it would be really nice to have
> > dump functions writing to a C++ std::ostream
>
> I'm not sure what to think about using streams.  I have no great
> familiarity with them, so I can't say whether they provide any
> concrete advantages over dumping to FILE objects.  Additionally,
> the rest of the compiler uses FILE objects for I/O.  How do the
> two stay in sync?

There are two big advantages.  First, you can concisely output a
bunch of stuff without having to worry about types.  Very good for
quick coding.

   std::cout << "My variable is " << varnode
             << " and its type is " << typnode
             << std::endl;

Second, the streams write to an output stream, which can be a
file or it can be a string buffer.  So, output isn't essentially
different from writing chars to a string.

The primary disadvantage is that to exploit that those advantages,
you need to convert all of the debugging/dumping I/O to use streams.

And, as a side note, highly formatted output generally is not
much better than printf.  For any text that needs to be localized,
I recommend that we stick with what we have.

-- 
Lawrence Crowl

Reply via email to