[Bug libstdc++/95048] [9/10/11 Regression] wstring-constructor of std::filesystem::path throws for non-ASCII characters

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 12 13:58:23 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95048

--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Christian Fersch from comment #6)
> It seems like the solution would be to use codecvt_utf8 if wchar_t is 32bit
> and  codecvt_utf8_utf16 if wchar_t is 16bit. This also seems to be what
> libc++ is doing. Would you accept a patch for this?

Doesn't this have the problem I pointed out in comment 5? Using codecvt_utf8
assumes that the wchar_t encoding is either UCS-2 or UCS-4. GCC supports
changing that encoding using the -fwide-exec-charset= option.

> Do we need to handle systems where wchar_t is something other than 16 or 32
> bit wide?

No.


More information about the Gcc-bugs mailing list