libstdc++: std::filesystem::path Class Reference

libstdc++

std::filesystem::path Class Reference
Filesystem

`#include <filesystem>`

## Classes
class | iterator

## Public Types
using | const_iterator
enum | format : unsigned char { native_format , generic_format , auto_format }
using | string_type
using | value_type

## Public Member Functions
template<typename _InputIterator, typename _Require = __detail::_Path2<_InputIterator>, typename _Req2 = __detail::__value_type_is_char<_InputIterator>>
| path (_InputIterator __first, _InputIterator __last, const locale &__loc, format=auto_format)
template<typename _InputIterator, typename _Require = __detail::_Path2<_InputIterator>>
| path (_InputIterator __first, _InputIterator __last, format=auto_format)
template<typename _Source, typename _Require = __detail::_Path<_Source>>
| path (_Source const &__source, format=auto_format)
template<typename _Source, typename _Require = __detail::_Path<_Source>, typename _Require2 = __detail::__value_type_is_char<_Source>>
| path (_Source const &__src, const locale &__loc, format=auto_format)
| path (const path &__p)=default
| path (path &&__p) noexcept
| path (string_type &&__source, format=auto_format)
template<typename _InputIterator>
__detail::_Path2< _InputIterator > & | append (_InputIterator __first, _InputIterator __last)
template<typename _Source>
__detail::_Path< _Source > & | append (_Source const &__source)
template<typename _InputIterator>
__detail::_Path2< _InputIterator > & | assign (_InputIterator __first, _InputIterator __last)
template<typename _Source>
__detail::_Path< _Source > & | assign (_Source const &__source)
path & | assign (string_type &&__source)
iterator | begin () const noexcept
const value_type * | c_str () const noexcept
void | clear () noexcept
int | compare (basic_string_view< value_type > __s) const noexcept
int | compare (const path &__p) const noexcept
int | compare (const string_type &__s) const noexcept
int | compare (const value_type *__s) const noexcept
template<typename _InputIterator>
__detail::_Path2< _InputIterator > & | concat (_InputIterator __first, _InputIterator __last)
template<typename _Source>
__detail::_Path< _Source > & | concat (_Source const &__x)
bool | empty () const noexcept
iterator | end () const noexcept
path | extension () const
path | filename () const
std::string | generic_string () const
template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
std::basic_string< _CharT, _Traits, _Allocator > | generic_string (const _Allocator &__a=_Allocator()) const
std::u16string | generic_u16string () const
std::u32string | generic_u32string () const
std::string | generic_u8string () const
std::wstring | generic_wstring () const
bool | has_extension () const noexcept
bool | has_filename () const noexcept
bool | has_parent_path () const noexcept
bool | has_relative_path () const noexcept
bool | has_root_directory () const noexcept
bool | has_root_name () const noexcept
bool | has_root_path () const noexcept
bool | has_stem () const noexcept
bool | is_absolute () const noexcept
bool | is_relative () const noexcept
path | lexically_normal () const
path | lexically_proximate (const path &base) const
path | lexically_relative (const path &base) const
path & | make_preferred ()
const string_type & | native () const noexcept
| operator string_type () const
template<typename _CharT>
__detail::_Path2< _CharT * > & | operator+= (_CharT __x)
template<typename _Source>
__detail::_Path< _Source > & | operator+= (_Source const &__x)
path & | operator+= (basic_string_view< value_type > __x)
path & | operator+= (const path &__x)
path & | operator+= (const string_type &__x)
path & | operator+= (const value_type *__x)
path & | operator+= (value_type __x)
template<typename _Source>
__detail::_Path< _Source > & | operator/= (_Source const &__source)
path & | operator/= (const path &__p)
template<typename _Source>
__detail::_Path< _Source > & | operator= (_Source const &__source)
path & | operator= (const path &)
path & | operator= (path &&) noexcept
path & | operator= (string_type &&__source)
path | parent_path () const
path | relative_path () const
path & | remove_filename ()
path & | replace_extension (const path &__replacement=path())
path & | replace_filename (const path &__replacement)
path | root_directory () const
path | root_name () const
path | root_path () const
path | stem () const
std::string | string () const
template<typename _CharT, typename _Traits, typename _Allocator>
basic_string< _CharT, _Traits, _Allocator > | string (const _Allocator &__a) const
template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
std::basic_string< _CharT, _Traits, _Allocator > | string (const _Allocator &__a=_Allocator()) const
void | swap (path &__rhs) noexcept
std::u16string | u16string () const
std::u32string | u32string () const
std::string | u8string () const
std::wstring | wstring () const

## Static Public Attributes
static constexpr value_type | preferred_separator

## Friends
path | operator/ (const path &__lhs, const path &__rhs)
template<typename _CharT, typename _Traits>
std::basic_ostream< _CharT, _Traits > & | operator<< (std::basic_ostream< _CharT, _Traits > &__os, const path &__p)
strong_ordering | operator<=> (const path &__lhs, const path &__rhs) noexcept
bool | operator== (const path &__lhs, const path &__rhs) noexcept
template<typename _CharT, typename _Traits>
std::basic_istream< _CharT, _Traits > & | operator>> (std::basic_istream< _CharT, _Traits > &__is, path &__p)

## Related Symbols
(Note that these are not member symbols.)
void | swap (path &__lhs, path &__rhs) noexcept
template<typename _InputIterator, typename _Require = __detail::_Path2<_InputIterator>, typename _CharT = __detail::__value_type_is_char_or_char8_t<_InputIterator>>
path | u8path (_InputIterator __first, _InputIterator __last)
template<typename _Source, typename _Require = __detail::_Path<_Source>, typename _CharT = __detail::__value_type_is_char_or_char8_t<_Source>>
path | u8path (const _Source &__source)

## Detailed Description

A filesystem path.

Since
  C++17

Definition at line 297 of file bits/fs_path.h.

## Member Typedef Documentation

## ◆ const_iterator

using std::filesystem::path::const_iterator

Definition at line 536 of file bits/fs_path.h.

## ◆ string_type

using std::filesystem::path::string_type

Definition at line 312 of file bits/fs_path.h.

## ◆ value_type

using std::filesystem::path::value_type

Definition at line 308 of file bits/fs_path.h.

## Member Enumeration Documentation

## ◆ format

enum std::filesystem::path::format : unsigned char

path::format is ignored in this implementation

Definition at line 315 of file bits/fs_path.h.

## Constructor & Destructor Documentation

## ◆ path() [1/7]

std::filesystem::path::path | ( |  | ) |
| inlinenoexcept

Definition at line 319 of file bits/fs_path.h.

## ◆ path() [2/7]

std::filesystem::path::path | ( | path && | __p | ) |
| inlinenoexcept

Definition at line 323 of file bits/fs_path.h.

## ◆ path() [3/7]

std::filesystem::path::path | ( | string_type && | __source,
|  | format | = auto_format )
| inline

Definition at line 328 of file bits/fs_path.h.

## ◆ path() [4/7]

template<typename _Source, typename _Require = __detail::_Path<_Source>>

std::filesystem::path::path | ( | _Source const & | __source,
|  | format | = auto_format )
| inline

Definition at line 334 of file bits/fs_path.h.

## ◆ path() [5/7]

template<typename _InputIterator, typename _Require = __detail::_Path2<_InputIterator>>

std::filesystem::path::path | ( | _InputIterator | __first,
|  | _InputIterator | __last,
|  | format | = auto_format )
| inline

Definition at line 340 of file bits/fs_path.h.

## ◆ path() [6/7]

template<typename _Source, typename _Require = __detail::_Path<_Source>, typename _Require2 = __detail::__value_type_is_char<_Source>>

std::filesystem::path::path | ( | _Source const & | __src,
|  | const locale & | __loc,
|  | format | = auto_format )
| inline

Definition at line 347 of file bits/fs_path.h.

## ◆ path() [7/7]

template<typename _InputIterator, typename _Require = __detail::_Path2<_InputIterator>, typename _Req2 = __detail::__value_type_is_char<_InputIterator>>

std::filesystem::path::path | ( | _InputIterator | __first,
|  | _InputIterator | __last,
|  | const locale & | __loc,
|  | format | = auto_format )
| inline

Definition at line 354 of file bits/fs_path.h.

## Member Function Documentation

## ◆ append() [1/2]

template<typename _InputIterator>

__detail::_Path2< _InputIterator > & std::filesystem::path::append | ( | _InputIterator | __first,
|  | _InputIterator | __last )
| inline

Definition at line 405 of file bits/fs_path.h.

## ◆ append() [2/2]

template<typename _Source>

__detail::_Path< _Source > & std::filesystem::path::append | ( | _Source const & | __source | ) |
| inline

Definition at line 397 of file bits/fs_path.h.

## ◆ assign() [1/2]

template<typename _InputIterator>

__detail::_Path2< _InputIterator > & std::filesystem::path::assign | ( | _InputIterator | __first,
|  | _InputIterator | __last )
| inline

Definition at line 380 of file bits/fs_path.h.

## ◆ assign() [2/2]

template<typename _Source>

__detail::_Path< _Source > & std::filesystem::path::assign | ( | _Source const & | __source | ) |
| inline

Definition at line 375 of file bits/fs_path.h.

## ◆ c_str()

const value_type * std::filesystem::path::c_str | ( |  | ) | const
| inlinenoexcept

Definition at line 457 of file bits/fs_path.h.

## ◆ clear()

void std::filesystem::path::clear | ( |  | ) |
| inlinenoexcept

Definition at line 445 of file bits/fs_path.h.

## ◆ concat() [1/2]

template<typename _InputIterator>

__detail::_Path2< _InputIterator > & std::filesystem::path::concat | ( | _InputIterator | __first,
|  | _InputIterator | __last )
| inline

Definition at line 437 of file bits/fs_path.h.

## ◆ concat() [2/2]

template<typename _Source>

__detail::_Path< _Source > & std::filesystem::path::concat | ( | _Source const & | __x | ) |
| inline

Definition at line 429 of file bits/fs_path.h.

## ◆ empty()

bool std::filesystem::path::empty | ( |  | ) | const
| inlinenodiscardnoexcept

Definition at line 517 of file bits/fs_path.h.

## ◆ is_relative()

bool std::filesystem::path::is_relative | ( |  | ) | const
| inlinenoexcept

Definition at line 527 of file bits/fs_path.h.

## ◆ native()

const string_type & std::filesystem::path::native | ( |  | ) | const
| inlinenoexcept

Definition at line 456 of file bits/fs_path.h.

## ◆ operator string_type()

std::filesystem::path::operator string_type | ( |  | ) | const
| inline

Definition at line 458 of file bits/fs_path.h.

## ◆ operator+=()

template<typename _Source>

__detail::_Path< _Source > & std::filesystem::path::operator+= | ( | _Source const & | __x | ) |
| inline

Definition at line 421 of file bits/fs_path.h.

## ◆ operator/=()

template<typename _Source>

__detail::_Path< _Source > & std::filesystem::path::operator/= | ( | _Source const & | __source | ) |
| inline

Definition at line 389 of file bits/fs_path.h.

## ◆ operator=()

template<typename _Source>

__detail::_Path< _Source > & std::filesystem::path::operator= | ( | _Source const & | __source | ) |
| inline

Definition at line 370 of file bits/fs_path.h.

## Friends And Related Symbol Documentation

## ◆ operator/

path operator/ | ( | const path & | __lhs,
|  | const path & | __rhs )
| friend

Append one path to another.

Definition at line 595 of file bits/fs_path.h.

## ◆ operator<<

template<typename _CharT, typename _Traits>

std::basic_ostream< _CharT, _Traits > & operator<< | ( | std::basic_ostream< _CharT, _Traits > & | __os,
|  | const path & | __p )
| friend

Write a path to a stream.

Definition at line 543 of file bits/fs_path.h.

## ◆ operator<=>

strong_ordering operator<=> | ( | const path & | __lhs,
|  | const path & | __rhs )
| friend

Compare paths.

Definition at line 569 of file bits/fs_path.h.

## ◆ operator==

bool operator== | ( | const path & | __lhs,
|  | const path & | __rhs )
| friend

Compare paths.

Definition at line 564 of file bits/fs_path.h.

## ◆ operator>>

template<typename _CharT, typename _Traits>

std::basic_istream< _CharT, _Traits > & operator>> | ( | std::basic_istream< _CharT, _Traits > & | __is,
|  | path & | __p )
| friend

Read a path from a stream.

Definition at line 553 of file bits/fs_path.h.

References std::move().

## Member Data Documentation

## ◆ preferred_separator

value_type std::filesystem::path::preferred_separator
| staticconstexpr

Definition at line 310 of file bits/fs_path.h.

The documentation for this class was generated from the following file:

- bits/fs_path.h