std::experimental::filesystem::path::append, std::experimental::filesystem::path::operator/=
From cppreference.com
< cpp | experimental | fs | path
| 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() がディレクトリ区切り文字で始まる。
次に、*this によって維持されているパス名に、p.native() を付加します。
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"; // does not insert a separator // "C:Users" is a relative path in Windows // adding directory separator would turn it to an absolute path std::cout << "\"C:\" / \"Users\" == " << p1 << '\n'; p1 /= "batman"; // inserts fs::path::preferred_separator, '\' on Windows std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n'; }
実行結果の例
"C:" / "Users" == "C:Users" "C:" / "Users" / "batman" == "C:Users\batman"
[編集] 関連項目
| ディレクトリセパレータを導入せずに2つのパスを連結します。 (public member function) | |
| ディレクトリセパレータで2つのパスを連結します。 (function) |