Boost logo

Boost :

Subject: Re: [boost] [serialization]cannot build libboost_serialization.so.1.60.0 with Oracle Solaris Studio
From: Robert Ramey (ramey_at_[hidden])
Date: 2015-10-27 15:34:23


On 10/27/15 11:36 AM, Sylvester-Bradley, Gareth wrote:
> Sync is a function that only applies to input streams, not output. (Flush is more-or-less the equivalent for output streams.)
> If our library code is handed a stream to work with, not a streambuf, it makes sense for the library to call sync() rather than rdbuf()->pubsync() so the caller sees the stream state (badbit, etc.) updated as expected.

Who is "our" in this context? Some particular library? Surely one
can't speak for all implementations.

> Locales affect formatted input functions, which is why the stream (in its ios_base) caches the locale.
> But the streambuf needs it too for the codecvt facet.
> Again, as you suggest, if our caller hands us a stream to work with, it makes sense to imbue the stream which (via its basic_ios)
> makes sure both ios_base and its streambuf have the same locale. I
think the standard indicates this too.

Hmm - I don't think so - that's exactly my problem - ios_base for libc++
doesn't include a sync() function on ouput - does for input though. on
gcc I HAVE to call it or the program crashes. The standard only
mentions it on
>
> Standard libraries from before templated iostreams are, one hopes, long out of scope, but Boost.Iostreams still has the necessary configuration macros if they're not.
>
>
> That's based on my experience with similar suite of platforms/std-libs/docs as you're knocking into shape,
> and it may all have been obvious to you after all your research,
sorry if so.

LOL - now I'm thinking it would have been better if stlport failed
sooner to get you sucked in that much sooner.

Robert Ramey


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