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.


Boost list run by bdawes at, gregod at, cpdaniel at, john at