27 Input/output library [input.output]

27.11 File systems [filesystems]

27.11.4 Requirements [fs.req]

Throughout this subclause, char, wchar_­t, char16_­t, and char32_­t are collectively called encoded character types.
Functions with template parameters named EcharT shall not participate in overload resolution unless EcharT is one of the encoded character types.
Template parameters named InputIterator shall satisfy the Cpp17InputIterator requirements ([input.iterators]) and shall have a value type that is one of the encoded character types.
Use of an encoded character type implies an associated character set and encoding.
Since signed char and unsigned char have no implied character set and encoding, they are not included as permitted types.
end note
Template parameters named Allocator shall satisfy the Cpp17Allocator requirements (Table 33). Namespaces and headers [fs.req.namespace]

Unless otherwise specified, references to entities described in this subclause are assumed to be qualified with ::std::filesystem::.