Both cppreference.com and cplusplus.com say it’s
int_type. But they don’t explain (at least I couldn’t find it, an neither could Bing Chat) what type it is. (I suppose it can be any signed integer type at least as wide as
The special value
EOF needs to be of integer type that is wider than the corresponding character type, as it cannot be the same value as any character.
In common scenarios, but not all scenarios(!), it is -1.
The traits class template
std::char_traits provides a corresponding type for the respective character types: https://en.cppreference.com/w/cpp/string/char_traits
For example, for
char it is
int. Which is platform-dependent, but at least 16 bits wide.