Section: 24.2.3 [char.traits.specializations] Status: CD1 Submitter: Bo Persson Opened: 2007-08-13 Last modified: 2016-02-10
Priority: Not Prioritized
View all other issues in [char.traits.specializations].
View all issues with CD1 status.
The changes made for constexpr in 24.2.3 [char.traits.specializations] have not only changed the not_eof function from pass by const reference to pass by value, it has also changed the parameter type from int_type to char_type.
This doesn't work for type char, and is inconsistent with the requirements in Table 56, Traits requirements, 24.2.1 [char.traits.require].
For what it's worth, that may not have been an intentional change. N2349, which detailed the changes for adding constant expressions to the library, has strikeout bars through the const and the & that surround the char_type argument, but none through char_type itself. So the intention may have been just to change to pass by value, with text incorrectly copied from the standard.
Change the signature in 220.127.116.11 [char.traits.specializations.char], 18.104.22.168 [char.traits.specializations.char16_t], 22.214.171.124 [char.traits.specializations.char32_t], and 126.96.36.199 [char.traits.specializations.wchar.t] to
static constexpr int_type not_eof(
[ Bellevue: ]
Resolution: NAD editorial - up to Pete's judgment
[ Post Sophia Antipolis ]
Moved from Pending NAD Editorial to Review. The proposed wording appears to be correct but non-editorial.