Namespaces
Variants

std::experimental::filesystem::path:: concat, std::experimental::filesystem::path:: operator+=

From cppreference.net
path & operator + = ( const path & p ) ;
(1) (filesystem TS)
path & operator + = ( const string_type & str ) ;
(2) (filesystem TS)
path & operator + = ( const value_type * ptr ) ;
(3) (filesystem TS)
path & operator + = ( value_type x ) ;
(4) (filesystem TS)
template < class Source >
path & operator + = ( const Source & source ) ;
(5) (filesystem TS)
template < class CharT >
path & operator + = ( CharT x ) ;
(6) (filesystem TS)
template < class Source >
path & concat ( const Source & source ) ;
(7) (filesystem TS)
template < class InputIt >
path & concat ( InputIterator first, InputIterator last ) ;
(8) (filesystem TS)

現在のパスと引数を連結します。

1) * this p を連結し、結果の native() が元の native() p. native ( ) を正確に連結したものとなるようにします。
2) (1) と同様ですが、結果の native() は元の native() と文字列 str の連結となります。
3) 以下は (1) と同様であるが、結果の native() は元の native() と、 ptr が指す先頭文字から始まるnull終端文字列を連結したものとなる。
4) (1) と同様であるが、結果の native() は元の native() と単一文字 x の連結となる。
5) (1) と同様であるが、結果の native() は元の native() source によって表現されるシーケンス(ポータブル形式またはネイティブ形式のいずれか)の連結となる。 std:: basic_string 、ヌル終端マルチキャラクタ文字列、またはヌル終端マルチキャラクタシーケンスを指す入力イテレータのいずれかである。
6) (4) と同様ですが、文字変換が行われる可能性があります。
7) (5) と同じ。
8) (5) と同様、ただしシーケンスはマルチキャラクター文字列を指定する任意のイテレータペアで表現される。

目次

パラメータ

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

戻り値

* this

例外

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

注記

append() または operator/= とは異なり、追加のディレクトリ区切り文字が導入されることは決してありません。

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::path p1; // empty path
    p1 += "var"; // does not insert a separator
    std::cout << "\"\" + \"var\" == " << p1 << '\n';
    p1 += "lib"; // does not insert a separator
    std::cout << "\"\" + \"var\" + \"lib\" == " << p1 << '\n';
}

出力:

"" + "var" == "var"
"" + "var" + "lib" == "varlib"

関連項目

パスに要素を追加する
(公開メンバ関数)
ディレクトリ区切り文字で2つのパスを連結する
(関数)