Namespaces
Variants

std::experimental::filesystem::path:: append, std::experimental::filesystem::path:: operator/=

From cppreference.net
path & operator / = ( const path & p ) ;
(1) (filesystem TS)
template < class Source >
path & operator / = ( const Source & source ) ;
(2) (filesystem TS)
template < class Source >
path & append ( const Source & source ) ;
(3) (filesystem TS)
template < class InputIt >
path & append ( InputIt first, InputIt last ) ;
(4) (filesystem TS)
1) まず、以下のいずれかの条件が真でない限り、優先ディレクトリ区切り文字を this に追加します:
* セパレータは冗長になる( * this が既にセパレータで終わっているため)。
* * this が空である場合、または追加すると相対パスが何らかの方法で絶対パスに変換される場合。
* p は空のパスです。
* p. native ( ) がディレクトリ区切り文字で始まる。
その後、 p. native ( ) * this が保持するパス名に追加する。
2,3) (1) と同じですが、 std:: basic_string や、null終端マルチ文字列、あるいはnull終端マルチ文字シーケンスを指す入力イテレータを受け入れます。
4) (1) と同じですが、マルチ文字列を指定する任意のイテレータペアを受け入れます。

目次

パラメータ

p - 追加するパス名
source - std:: basic_string 、ヌル終端マルチ文字列、またはヌル終端マルチ文字シーケンスを指す入力イテレータ(ポータブル形式またはネイティブ形式のいずれかのパス名を表す)
first, last - パス名を表すマルチ文字シーケンスを指定する LegacyInputIterator のペア
型要件
-
InputIt LegacyInputIterator の要件を満たさなければならない。
-
InputIt の値型はエンコードされた文字型( char wchar_t char16_t および char32_t )のいずれかでなければならない。

戻り値

* this

例外

基盤となるOS APIエラーが発生した場合 filesystem_error をスローする可能性があり、メモリ確保に失敗した場合は std:: bad_alloc をスローする可能性があります。

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::path p1 = "C:";
    p1 /= "Users"; // セパレータを挿入しない
                   // "C:Users" はWindowsにおける相対パス
                   // ディレクトリセパレータを追加すると絶対パスになる
    std::cout << "\"C:\" / \"Users\" == " << p1 << '\n';
    p1 /= "batman"; // fs::path::preferred_separatorを挿入、Windowsでは'\'
    std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n';
}

出力例:

"C:" / "Users" == "C:Users"
"C:" / "Users" / "batman" == "C:Users\batman"

関連項目

ディレクトリ区切り文字を導入せずに2つのパスを連結する
(公開メンバ関数)
ディレクトリ区切り文字を使用して2つのパスを連結する
(関数)