最終更新日時: 2026年07月22日 16時08分23秒 (JST)
rotarymars が更新

履歴 編集

function template
<filesystem>

# std::filesystem::path::concat(C++17)

    template <class Source>
    path& concat(const Source& x);                         // (1)

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

## 概要

パス文字列を加算する。

## 効果

- (1) : `path(x).native()`を、`*this`が保持するパス文字列に加算する
- (2) : `return *this += path(first, last)`と等価

## 戻り値

`*this`

## 例

    #include <iostream>
    #include <filesystem>
    #include <string>

    namespace fs = std::filesystem;

    int main()
    {
      {
        fs::path p = "foo";
        p.concat("bar");
        std::cout << p << std::endl;
      }
      {
        fs::path p = "foo/";
        p.concat("bar");
        std::cout << p << std::endl;
      }
      {
        std::string bar = "bar";

        fs::path p = "foo";
        p.concat(bar.begin(), bar.end());

        std::cout << p << std::endl;
      }
    }

### 出力

    "foobar"
    "foo/bar"
    "foobar"

## バージョン

### 言語

- C++17

### 処理系

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