On 22 April 2011 02:49, Hugo Arregui wrote: > Hi guys, > > today I find a change on istream.eof when I upgrade from 4.5.2 to 4.6.0. > > Here's a little example showing the change, this code will show "true, > true" using gcc 4.5.2 (and previous), and "true, false" using 4.6: > > I don't know if it's a bug, or some expected change, or even if i'm > wrong blaming gcc. Can you confirm that? > > ----- > The code: > > #include <iostream> > #include <sstream> > > using namespace std; > > static bool is_next_char_readable(istream& file) > { > file.get(); > const bool result = file.eof(); > file.unget(); > return result; > } > > int main() > { > istringstream s("test"); > s.seekg(0, ios_base::end); > std::cout << is_next_char_readable(s) << std::endl; > std::cout << is_next_char_readable(s) << std::endl; > return 0; > } > Probably due to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26211 which fixed some defect reports in the standard