
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@torjo.com 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)