21 Strings library [strings]

21.2 Character traits [char.traits]

21.2.2 Traits typedefs [char.traits.typedefs]

using int_type = see below;
Expects: int_­type shall be able to represent all of the valid characters converted from the corresponding char_­type values, as well as an end-of-file value, eof().225
using state_type = see below;
Expects: state_­type meets the Cpp17Destructible ([tab:destructible]Table *tab:destructible), Cpp17CopyAssignable ([tab:copyassignable]Table *tab:copyassignable), Cpp17CopyConstructible ([tab:copyconstructible]Table *tab:copyconstructible), and Cpp17DefaultConstructible ([tab:defaultconstructible]Table *tab:defaultconstructible) requirements.
If eof() can be held in char_­type then some iostreams operations can give surprising results.