C++: istream.eof on gcc 4.6
Jonathan Wakely
jwakely.gcc@gmail.com
Fri Apr 22 11:18:00 GMT 2011
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
More information about the Gcc-help
mailing list