Also set the preferred separator to backslash.
libc++ doesn't compile successfully for windows prior to this change, and this change on its own isn't enough to make it compile successfully either, but is the first stepping stone towards making it work correctly.
Most of operations.cpp will need to be touched, both for calling functions that take wchar paths, but also for using other windows specific functions instead of the posix functions used so far; that is handled in later commits.
Changing parts of operations.cpp to generalize the string type handling in code that doesn't touch system functions.
Do you really need this type? Can't you use __u8_string::value_type instead?