Boost logo

Boost :

From: John Torjo (john.lists_at_[hidden])
Date: 2004-09-13 03:04:57


>
> 2. The first part of documentation should
> be what is purpose of the library.
>
> I guess in this case it is debugging
> and testing support, 100% cases.
>

Introduction:
"The Standard Template Library (STL) provides a mechanism for storing
collections of objects, but does not provide I/O support via streams.
[...] The outfmt library is an attempt to solve the problems outlined
above, providing an extensible framework [...]"

So, what I gather is that it provides customizable I/O for
containers/ranges.

That said, I donot think its purpose is debugging/testing support 100%
cases. It does definitely support that, but you can do more - like, do
some pretty printing to file(s), std::cout, etc.
I would even go further saying that you can do pretty reports that you
can show on a GUI (example, print a report with files that were copied
from place A to B - with eventual errors -, in an Edit Box)

>
> 4. There seems to be significant overlap
> with Boost.Serialization (I suspect
> outfm doesn't handle cyclic
> structures).

I would not say so. I see serialization as filling a quite different
gap. For instance, for what you say above - testing/debugging, I would
certainly not use boost.serialization. For testing/debugging, I will
want pretty printing.

>
>
> 5. To support debugging I would like to see
> many more features:
>
> - ability to wrap long lines in pretty way

I guess this could be solved by IO streams lib ;)

>
> - ability to generate HTML as output
> (+ ability to fold/unfold big data
> structures using Javascript).
>

I assume this could be added in time... Reece?

>
> - ability to diff two outputed data
> where applicable and produce
> some easy to read report,
> possibly helper function:

I've been toying with this a while ago. But I think you'd better have
this as a different application.

>
> - some time ago John Torjo designed
> SMART_ASSERT library. If this will make
> into Boost, outfm would be perfect
> complement for it.
>
Oh yes ;) Indeed, I could adapt SMART_ASSERT to allow pretty printing of
containers and such.

-- 
John Torjo
-- john_at_[hidden]
Contributing editor, C/C++ Users Journal
-- "Win32 GUI Generics" -- generics & GUI do mix, after all
-- http://www.torjo.com/win32gui/
-- v1.4.0 - save_dlg - true binding of your data to UI controls!
    + easily add validation rules (win32gui/examples/smart_dlg)

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