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

### 831. wrong type for not_eof()

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

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 21.2.4 [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 21.2.4.2 [char.traits.specializations.char], [char.traits.specializations.char16_t], [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.