21.1.1 Character Traits Requirements
The C++ standard states that the value returned by char_traits::eof must not be a valid character value. The Visual C++ compiler enforces this constraint for char_type<char>::eof, but not for char_type<wchar_t>::eof.