[fs.path.concat]

# 31 Input/output library [[input.output]](./#input.output)

## 31.12 File systems [[filesystems]](filesystems#fs.path.concat)

### 31.12.6 Class path [[fs.class.path]](fs.class.path#fs.path.concat)

#### 31.12.6.5 Members [[fs.path.member]](fs.path.member#fs.path.concat)

#### 31.12.6.5.4 Concatenation [fs.path.concat]

[ð](#lib:operator+=,path)

`path& operator+=(const path& x);
path& operator+=(const string_type& x);
path& operator+=(basic_string_view<value_type> x);
path& operator+=(const value_type* x);
template<class Source>
  path& operator+=(const Source& x);
template<class Source>
  path& concat(const Source& x);
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L14443)

*Effects*: Appends path(x).native() to the pathname in the native format[.](#1.sentence-1)

[*Note [1](#note-1)*:

This directly manipulates the value of native(),
which is not necessarily portable between operating systems[.](#1.sentence-2)

â *end note*]

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L14451)

*Returns*: *this[.](#2.sentence-1)

[ð](#lib:operator+=,path_)

`path& operator+=(value_type x);
template<class EcharT>
  path& operator+=(EcharT x);
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L14465)

*Effects*: Equivalent to: return *this += basic_string_view(&x, 1);

[ð](#lib:concat,path__)

`template<class InputIterator>
  path& concat(InputIterator first, InputIterator last);
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L14477)

*Effects*: Equivalent to: return *this += path(first, last);
