831. wrong type for not_eof()

Section: 24.2.3 [char.traits.specializations] Status: NAD Editorial Submitter: Dietmar Kühl Opened: 2008-04-23 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [char.traits.specializations].

View all issues with NAD Editorial status.

Discussion:

In Table 56 (Traits requirements) the not_eof() member function is using an argument of type e which denotes an object of type X::int_type. However, the specializations in 24.2.3 [char.traits.specializations] all use char_type. This would effectively mean that the argument type actually can't represent EOF in the first place. I'm pretty sure that the type used to be int_type which is quite obviously the only sensible argument.

This issue is close to being editorial. I suspect that the proposal changing this section to include the specializations for char16_t and char32_t accidentally used the wrong type.

Proposed resolution:

In 24.2.3.1 [char.traits.specializations.char], 24.2.3.2 [char.traits.specializations.char16_t], 24.2.3.3 [char.traits.specializations.char32_t], and [char.traits.specializations.wchar_t] correct the argument type from char_type to int_type.

Rationale:

Already fixed in WP.