Angus Leeming <[EMAIL PROTECTED]> writes: >> | { >> | +#if defined (WIN32) >> | ifstream ifs(from.c_str(), ios::binary); >> | +#else >> | + // A bug in the gcc 2.95 implementation of ifstream >> | + // means that we can't use ios::binary here (even though >> | + // it should have no effect on unix machines). >> | + ifstream ifs(from.c_str()); >> | +#endif >> >> I don't like this ... If at all... only the failing compiler/stdlib >> should have special code. > | Sheesh! With all due respect, why do you care? The flag should have | absolutely no effect on a unix machine, so the two pieces are exactly | equivalent to a compliant compiler/lib.
This is not the point. The point is that "ios::binary" is standard conforming. So we should be able to use this without any special defines. | Nonetheless, to show willing: > | #if defined (__GNUC__) && defined (__GNUC_MINOR__) && \ | !defined(_STLPORT_VERSION) && \ | __GNUC__ == 2 && __GNUC_MINOR__ <= 95 > | Do you really want that? HAVE_WORKING_IOS_BINARY_FLAG Besides do we really support 2.95 anymore? (and its stdlib?) -- Lgb