最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<filesystem>

# std::filesystem::path::operator+=(C++17)

    path& operator+=(const path& x);                   // (1)
    path& operator+=(const string_type& x);            // (2)
    path& operator+=(basic_string_view<value_type> x); // (3)
    path& operator+=(const value_type* x);             // (4)
    path& operator+=(value_type x);                    // (5)

    template <class Source>
    path& operator+=(const Source& x);                 // (6)

    template <class EcharT>
    path& operator+=(EcharT x);                        // (7)

## 概要

パス文字列を加算する。

この演算子は、`operator/=`と違って、ディレクトリ区切り文字を自動的に挿入はせず、パス文字列への加算のみを行う。

## 効果

`path(x).native()`を、`*this`が保持するパス文字列に加算する。

## 戻り値

`*this`

## 例

    #include <iostream>
    #include <filesystem>

    namespace fs = std::filesystem;

    int main()
    {
      {
        fs::path p = "foo";
        p += "bar";
        std::cout << p << std::endl;
      }
      {
        fs::path p = "foo/";
        p += "bar";
        std::cout << p << std::endl;
      }
      {
        fs::path p = "foo";
        p += U'p'; // UTF-32文字を加算 (文字コードはクラス内部で自動変換される)
        std::cout << p << std::endl;
      }
    }

### 出力

    "foobar"
    "foo/bar"
    "foop"

## バージョン

### 言語

- C++17

### 処理系

- Clang:
- GCC: 8.1 ✅
- Visual C++: 2017 Update 7 ✅