Binary Conversion IO

Paolo Carlini paolo.carlini@oracle.com
Fri Sep 13 18:12:00 GMT 2013


Hi,

On 09/13/2013 07:48 PM, 3dw4rd@verizon.net wrote:
> Thanks, Paolo for looking at this.  I will add a test for underlying type.  I do not expect a problem because back in 2001 the last member of the enum (_S_ios_fmtflags_end) was set to 1<<16 to support 16-bit targets (Force 32-bit I suppose).  The bin flag took the last slot under that at 1<<15.  So the size of the enum should not change (But I'll check it).
Ok.
>    (Whether other implementations are so luck is an open question).  The value of basefield will change of course but that shouldn't - and doesn't seem to be - messing up masking operations and so on.
basefield seems a problem. It's a user visible entity and if you pass 
its value in a function call which crosses two objects all the bets are 
off... We have to tackle the problem.
> The tests currently hitting these flags and manips run in -std=c++98 and -std=c++11 modes and test clean,  The tests I added obviously run clean.  I actually run all these new tests in -std=c++98 mode also.
>
> I could experiment with making this c++1y-only.  I would have to make a new c++14 directory under src and move the one lonely definition there.  Blocking all the header changes would be easy and making the tests C++1y only would be easy too.  If that is preferred I will do it.
It seems to me that this is c++1y material. We already have some, 
committed, eg, by Jon, a while ago, right after I tweaked the value of 
__cpluplus to be strictly larger than the value mandated by C++11 when 
-std=c++1y is specified.

Paolo.



More information about the Libstdc++ mailing list