This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of CD1 status.

664. do_unshift for codecvt<char, char, mbstate_t>

Section: 28.3.4.2.5.3 [locale.codecvt.virtuals] Status: CD1 Submitter: Thomas Plum Opened: 2007-04-16 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [locale.codecvt.virtuals].

View all issues with CD1 status.

Discussion:

28.3.4.2.5.3 [locale.codecvt.virtuals], para 7 says (regarding do_unshift):

Effects: Places characters starting at to that should be appended to terminate a sequence when the current stateT is given by state.237) Stores no more than (to_limit - to) destination elements, and leaves the to_next pointer pointing one beyond the last element successfully stored. codecvt<char, char, mbstate_t> stores no characters.

The following objection has been raised:

Since the C++ Standard permits a nontrivial conversion for the required instantiations of codecvt, it is overly restrictive to say that do_unshift must store no characters and return noconv.

[Plum ref _222152Y50]

Proposed resolution:

Change 28.3.4.2.5.3 [locale.codecvt.virtuals], p7:

Effects: Places characters starting at to that should be appended to terminate a sequence when the current stateT is given by state.237) Stores no more than (to_limit -to) destination elements, and leaves the to_next pointer pointing one beyond the last element successfully stored. codecvt<char, char, mbstate_t> stores no characters.