For member function arguments that take character sequences representing
paths and for member functions returning strings, value type and encoding
conversion is performed if the value type of the argument or return value differs from
path::value_type.
For the argument or return value, the method of conversion and the encoding
to be converted to is determined
by its value type:
For POSIX-based operating systems path::value_type is char
so no conversion from char value type arguments or to char
value type return values is performed.
For Windows-based operating systems, the
native ordinary encoding is determined by calling a Windows API function.
This results in behavior identical to other C and C++
standard library functions that perform file operations using ordinary character
strings to identify paths.
Changing this behavior would be surprising and
error-prone.
For Windows-based operating systems path::value_type is wchar_t
so no conversion from wchar_t value type arguments or to wchar_t
value type return values is performed.