Boost logo

Boost :

From: Samuel Krempp (krempp_at_[hidden])
Date: 2002-02-24 07:56:22


On Sun, 2002-02-24 at 02:11, rogeeff wrote:

> 1. I can hardly suspect STLPort ostreams to be inconforming.
> 2. I checked with and without STLPort. Following statement:
> std::cout << std::hex << std::setiosflags( std::ios::showbase ) << 20
> << '\n';
>
> print
>
> 0x14
> --
> So, I still think that it rather bug in format somewhere.

I looked at aht in detail : the problem was that I was initialising the
following member 'default-state' flags in stream_format_state
 std::ios_base::fmtflags flags_;

using its default constructor, with no supplied value.
I assumed the default value was actually the default state of streams.
And it was, for gcc and Metrowerks.
But not for MSVC..

So I'm now explicitly initialising it to 'std::ios_base::dec', and now
MSVC6 successfully passes the regression tests.

updated sources are in vault, version '1.43'

There's 2 other modifs with this version :
. it fixes a bug I found recently, that caused ignored directives (e.g.
%n) to require an argument if non-ordered directives (e.g. %s) were used
in the format-string.
. it improves the way ill-formed format-string are handled.
format2 was throwing an exception _after_ the parsing function had
returned, thus debugging cores due to uncaught exception gave no
information on why the format-string is ill-formed. now the functions
stack in such cores will allow the user to go precisely where an error
was detected.

-- 
Samuel

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