Title
Fixing remaining dead links to POS_T and OFF_T
Status
c++11
Section
[char.traits.specializations.char16.t]
Submitter
BSI

Created on 2010-08-25.00:00:00 last changed 153 months ago

Messages

Date: 2011-05-21.21:15:19

Proposed resolution:

The following wording changes are against N3126.

  1. Change [char.traits.specializations.char16_t]p.1 as indicated:

    1 - The type u16streampos shall be an implementation-defined type that satisfies the requirements for POS_T in 21.2.2pos_type in [iostreams.limits.pos].

  2. Change [char.traits.specializations.char32_t]p.1 as indicated:

    1 - The type u32streampos shall be an implementation-defined type that satisfies the requirements for POS_T in 21.2.2pos_type in [iostreams.limits.pos].

  3. Change [char.traits.specializations.wchar.t]p.2 as indicated:

    2 - The type wstreampos shall be an implementation-defined type that satisfies the requirements for POS_T in 21.2.2pos_type in [iostreams.limits.pos].

  4. Change [fpos.operations], Table 124 — Position type requirements as indicated:

    Table 124 — Position type requirements
    Expression Return type ...
    ... ... ...
    O(p) OFF_Tstreamoff ...
    ... ... ...
    o = p - q OFF_Tstreamoff ...
    streamsize(o)
    O(sz)
    streamsize
    OFF_Tstreamoff
    ...
  5. Change [depr.ios.members]p.1 as indicated:

    namespace std {
     class ios_base {
     public:
       typedef T1 io_state;
       typedef T2 open_mode;
       typedef T3 seek_dir;
       typedef OFF_Timplementation-defined streamoff;
       typedef POS_Timplementation-defined streampos;
       // remainder unchanged
     };
    }
    
  6. Change [depr.ios.members]p.5+6 as indicated:

    5 - The type streamoff is an implementation-defined type that satisfies the requirements of type OFF_T (27.5.1)off_type in [iostreams.limits.pos].

    6 - The type streampos is an implementation-defined type that satisfies the requirements of type POS_T (27.3)pos_type in [iostreams.limits.pos].

Date: 2010-11-24.14:01:03

[ Adopted at 2010-11 Batavia ]

Date: 2010-10-21.19:47:27

[ Post-Rapperswil, Daniel provides the wording. ]

When preparing the wording for this issue I first thought about adding both u16streampos and u32streampos to the [iostream.forward] header <iosfwd> synopsis similar to streampos and wstreampos, but decided not to do so, because the IO library does not yet actively support the char16_t and char32_t character types. Adding those would misleadingly imply that they would be part of the iostreams. Also, the addition would make them also similarly equal to a typedef to fpos<mbstate_t>, as for streampos and wstreampos, so there is no loss for users that would like to use the proper fpos instantiation for these character types.

Additionally the way of referencing was chosen to follow the style suggested by NB comment GB 108.

Moved to Tentatively Ready with proposed wording after 5 positive votes on c++std-lib.

Date: 2010-10-25.22:38:44

Addresses GB-109, GB-123

It is not clear what the specification means for u16streampos, u32streampos or wstreampos when they refer to the requirements for POS_T in 21.2.2, as there are no longer any such requirements. Similarly the annex D.7 refers to the requirements of type POS_T in 27.3 that no longer exist either.

Clarify the meaning of all cross-reference to the removed type POS_T.

History
Date User Action Args
2011-08-23 20:07:26adminsetstatus: wp -> c++11
2010-11-24 14:01:03adminsetmessages: + msg5430
2010-11-14 13:10:57adminsetstatus: voting -> wp
2010-11-08 14:14:39adminsetstatus: ready -> voting
2010-10-21 19:47:27adminsetmessages: + msg4824
2010-10-21 19:47:27adminsetmessages: + msg4823
2010-08-25 00:00:00admincreate