
Hi,
f << wstr; assert(f);
Without looking at the real case, the last assert is possibly useless: if there is still data in some internal buffer, only the stream going out of scope will flush that (and perhaps fail to do so). BTDT. Just add an 'f.flush()'.
O. k., that's right. But the "real" problem remains: This particular libstdc++ (g++ 3.3.3) dosn't like the codecvt facet to return "partial". I am still not sure, if the codecvt facet or the library has to be fixed. Some regression tests should try to convert some "really large" chunks of data (which contain UTF-8 multi-byte encodings). It seems that libstdc++ uses internal buffers of 8 KB size; the current conversion facet causes problems only, if you need more room. Best regards, Tilman