
The initial V3 implementation, like V2, could alter the codecvt facet used for conversion via a static imbue() function. This has a number of problems, including: * It is, in effect, a global variable, and thus "considered harmful" as being prone to abuse. * It is subject to data races in multi-threaded environments. * It can be hard to use. * It can be hard to explain. As of revision 63283 this morning, V3 class path in trunk now has an additional "const codecvt&" for all functions where conversion may be required. So you can now write: utf8_codecvt_facet utf8; // UTF-8 facet from boost or other sources path p(some_string, utf8); // some_string will be treated as UTF-8 encoded ... operations on p That's great, but where does that leave path::imbue? I think it should be deprecated. What do others think? --Beman