From: Reece Dunn (msclrhd_at_[hidden])
Date: 2003-04-04 10:32:39
Larry Evans wrote:
>I disagree. The following (almost) line by line translation of your example
As I said, I don't know the details of the implementation, so that was a
speculation based on how I presumed it was implemented.
>That's why I like your way; however, in the back of my mind,
>there's a feeling I started out that way (this was done years ago)
>and for some reason, after running some tests, found it better to
>do it this other way. I think the problem was I didn't always
>know when the beginning-of-line occured; hence, I needed the
>marg_ostream to keep track of this. I can't remember specifics
The problem lies in what to do when reading in data from an external source
like a file. In that instance, you have to manually scan the file for '\n'
characters and indent then.
This is a problem with my design, one solution to which would be to provide
a special method for string output that performs the indenting on '\n'
characters and the default << operator for strings and characters does not
I have made several improvements to the original code, including:
 added a security check for indentor::endIndent() to prevent
m_indent.level dropping below 0
 added the ability for indentor::indent() to output a newline character
 indent() is now implemented using width() and fill() functions from
OutputFileType, restoring their values afterwards - thanks to Larry Evans
for the suggestion
 added char/wchar_t support by inheriting the character type from
Worried what your kids see online? Protect them better with MSN 8
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk