$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [iostreams]ANNOUNCE:indent_filtering_ostream.zip in vault
From: Larry Evans (cppljevans_at_[hidden])
Date: 2010-01-12 14:38:51
On 01/12/10 11:29, dherring_at_[hidden] wrote:
> On Mon, 11 Jan 2010, vicente.botet wrote:
>> From: "Larry Evans" <cppljevans_at_[hidden]>
>>>
>>> The .zip file in subject is here:
>>>
>>> http://www.boostpro.com/vault/index.php?&directory=Input%20-%20Output
>>>
[snip]
> I wrote a similar utility, but made different tradeoffs.  The basic 
> usage looks like
> 
> Indentation nl; // takes optional max depth and depth/level params
> Indentation::Indent in(nl); // could have used a reference notation
> Indentation::Outdent out(nl);
> std::ostream os;
> os << nl "class x
>    << nl << '{' << in /* or nl.in */
>    << nl << "int x;"
>    << nl << "int y;" << out
>    << nl << "};"
> 
> Rationale:
> - operator++ and operator-- don't mix "as expected" with operator<<
The functions provided in the indent_filtering_ostream.hpp include:
   indent_in
   indent_out
which can be used just like your in and out.  For example:
; ++mout
; mout<<"line1.1"<<std::endl
; mout<<indent_in<<"line1.1.1"<<std::endl
; test_conversion(mout)
> - distinguishes between indenting and normal newlines
I'm not sure what this means.  Does it mean that to indent
a line, you have to use nl, as shown in this snippet of the code
you posted:
 >    << nl << "int x;"
If so, then I'm not sure that's an advantage.  Could you
please elaborate on what you mean?
> - possible to maintain several indentation systems
Could you describe when this would be an advantage?
-regards,
Larry