Member istreambuf_iterator<>::equal is not declared "const", yet [istreambuf.iterator::op==] says that operator==, which is const, calls it. This is contradictory.