30 Input/output library [input.output]

30.10 File systems [filesystems]

30.10.8 Class path [fs.class.path]

30.10.8.4 path members [fs.path.member]

30.10.8.4.6 path native format observers [fs.path.native.obs]

The string returned by all native format observers is in the native pathname format.

const string_type& native() const noexcept;

Returns: The pathname in the native format.

const value_type* c_str() const noexcept;

Returns: Equivalent to native().c_­str().

operator string_type() const;

Returns: native().

[Note: Conversion to string_­type is provided so that an object of class path can be given as an argument to existing standard library file stream constructors and open functions. end note]

template <class EcharT, class traits = char_traits<EcharT>, class Allocator = allocator<EcharT>> basic_string<EcharT, traits, Allocator> string(const Allocator& a = Allocator()) const;

Returns: native().

Remarks: All memory allocation, including for the return value, shall be performed by a. Conversion, if any, is specified by [fs.path.cvt].

std::string string() const; std::wstring wstring() const; std::string u8string() const; std::u16string u16string() const; std::u32string u32string() const;

Returns: pathstring.

Remarks: Conversion, if any, is performed as specified by [fs.path.cvt]. The encoding of the string returned by u8string() is always UTF-8.