---
name: "std::experimental::filesystem::path"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::experimental::filesystem::path/3cxx"
---

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

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.
