---
name: "std::experimental::filesystem::path"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::experimental::filesystem::path"
---

# std::experimental::filesystem::path(3)

A filesystem path.

## NAME

std::experimental::filesystem::path - A filesystem path.

## SYNOPSIS

\#include \<filesystem\>

### Classes

class **iterator**\
 An iterator for the components of a path.

### Public Types

typedef **iterator** **const\_iterator**\
 typedef **std::basic\_string**\< value\_type \> **string\_type**\
 typedef char **value\_type**\

### Public Member Functions

template\<typename \_InputIterator, typename \_Require = \_\_detail::\_Path\<\_InputIterator, \_InputIterator\>\> **path** (\_InputIterator \_\_first, \_InputIterator \_\_last)\
 template\<typename \_InputIterator, typename \_Require = \_\_detail::\_Path\<\_InputIterator, \_InputIterator\>, typename \_Require2 = \_\_detail::\_\_value\_type\_is\_char\<\_InputIterator\>\> **path** (\_InputIterator \_\_first, \_InputIterator \_\_last, const **locale** &\_\_loc)\
 template\<typename \_Source, typename \_Require = \_\_detail::\_Path\<\_Source\>\> **path** (\_Source const &\_\_source)\
 template\<typename \_Source, typename \_Require = \_\_detail::\_Path\<\_Source\>, typename \_Require2 = \_\_detail::\_\_value\_type\_is\_char\<\_Source\>\> **path** (\_Source const &\_\_source, const **locale** &\_\_loc)\
 **path** (const path &\_\_p)\
 **path** (path &&\_\_p) noexcept\
 **path** (string\_type &&\_\_source)\
 template\<typename \_InputIterator\> \_\_detail::\_Path\< \_InputIterator, \_InputIterator \> & **append** (\_InputIterator \_\_first, \_InputIterator \_\_last)\
 template\<typename \_Source\> \_\_detail::\_Path\< \_Source \> & **append** (\_Source const &\_\_source)\
 template\<typename \_InputIterator\> \_\_detail::\_Path\< \_InputIterator, \_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** (const **basic\_string\_view**\< value\_type \> \_\_s) const\
 int **compare** (const path &\_\_p) const noexcept\
 int **compare** (const string\_type &\_\_s) const\
 int **compare** (const value\_type \*\_\_s) const\
 template\<typename \_InputIterator\> \_\_detail::\_Path\< \_InputIterator, \_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\
 bool **has\_filename** () const\
 bool **has\_parent\_path** () const\
 bool **has\_relative\_path** () const\
 bool **has\_root\_directory** () const\
 bool **has\_root\_name** () const\
 bool **has\_root\_path** () const\
 bool **has\_stem** () const\
 bool **is\_absolute** () const\
 bool **is\_relative** () const\
 path & **make\_preferred** ()\
 const string\_type & **native** () const noexcept\
 **operator string\_type** () const\
 template\<typename \_CharT\> \_\_detail::\_Path\< \_CharT \*, \_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 &\_\_p)\
 path & **operator=** (path &&\_\_p) 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 = 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**\

## Detailed Description

A filesystem path.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
