From Jason Turner

[fs.path.type.cvt]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpi4262o1g/{from.md → to.md} +36 -0
tmp/tmpi4262o1g/{from.md → to.md} RENAMED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ##### `path` type and encoding conversions <a id="fs.path.type.cvt">[[fs.path.type.cvt]]</a>
2
+
3
+ For member function arguments that take character sequences representing
4
+ paths and for member functions returning strings, value type and
5
+ encoding conversion is performed if the value type of the argument or
6
+ return value differs from `path::value_type`. For the argument or return
7
+ value, the method of conversion and the encoding to be converted to is
8
+ determined by its value type:
9
+
10
+ - `char`: The encoding is the native narrow encoding (
11
+ [[fs.def.native.encode]]). The method of conversion, if any, is
12
+ operating system dependent. \[*Note 6*: For POSIX-based operating
13
+ systems `path::value_type` is `char` so no conversion from `char`
14
+ value type arguments or to `char` value type return values is
15
+ performed. For Windows-based operating systems, the native narrow
16
+ encoding is determined by calling a Windows API
17
+ function. — *end note*] \[*Note 7*: This results in behavior
18
+ identical to other C and C++ standard library functions that perform
19
+ file operations using narrow character strings to identify paths.
20
+ Changing this behavior would be surprising and error
21
+ prone. — *end note*]
22
+ - `wchar_t`: The encoding is the native wide encoding (
23
+ [[fs.def.native.encode]]). The method of conversion is unspecified.
24
+ \[*Note 8*: For Windows-based operating systems `path::value_type` is
25
+ `wchar_t` so no conversion from `wchar_t` value type arguments or to
26
+ `wchar_t` value type return values is performed. — *end note*]
27
+ - `char16_t`: The encoding is UTF-16. The method of conversion is
28
+ unspecified.
29
+ - `char32_t`: The encoding is UTF-32. The method of conversion is
30
+ unspecified.
31
+
32
+ If the encoding being converted to has no representation for source
33
+ characters, the resulting converted characters, if any, are unspecified.
34
+ Implementations should not modify member function arguments if already
35
+ of type `path::value_type`.
36
+