名前空間
変種
操作

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

From cppreference.com
< cpp‎ | experimental‎ | fs‎ | path
 
 
 
 
 
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) *thisp を、結果の native() が元の native()p.native() を連結したものと正確に一致するように連結します。
2) (1) と同じですが、結果の native() は元の native() と文字列 str を連結したものです。
3) (1) と同じですが、結果の native() は元の native() と、ptr が指すヌル終端文字列を連結したものです。
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 のペア。
型要件
-
InputItLegacyInputIterator の要件を満たす必要があります。
-
InputIt の値型は、エンコードされた文字型(charwchar_tchar16_t、および char32_t)のいずれかでなければなりません。
-
CharT は、エンコードされた文字型(charwchar_tchar16_tchar32_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"

[編集] 関連項目

パスに要素を追加します。
(public member function) [編集]
ディレクトリセパレータで2つのパスを連結します。
(function) [編集]
English 日本語 中文(简体) 中文(繁體)