名前空間
変種
操作

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() を付加します。
2,3) (1) と同じですが、任意の std::basic_string、ヌル終端マルチバイト文字列、またはヌル終端マルチバイトシーケンスを指す入力イテレータを受け入れます。
4) (1) と同じですが、マルチバイト文字列を指定する任意のイテレータペアを受け入れます。

目次

[編集] パラメータ

p - 付加するパス名
source - std::basic_string、ヌル終端マルチバイト文字列、またはヌル終端マルチバイトシーケンスを指す入力イテレータ。これらはパス名(ポータブル形式またはネイティブ形式)を表します。
first, last - パス名を表現するマルチ文字シーケンスを指定する、LegacyInputIterator のペア。
型要件
-
InputItLegacyInputIterator の要件を満たす必要があります。
-
InputIt の値型は、エンコードされた文字型(charwchar_tchar16_tchar32_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) [編集]
English 日本語 中文(简体) 中文(繁體)