std::experimental::filesystem::path:: append, std::experimental::filesystem::path:: operator/=
From cppreference.net
<
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)
Fügt zunächst das bevorzugte Verzeichnistrennzeichen an
this
an, außer wenn eine der folgenden Bedingungen zutrifft:
* der Trennzeichen wäre redundant (
*
this
endet bereits mit einem Trennzeichen).
*
*
this
ist leer, oder das Hinzufügen würde einen relativen Pfad auf eine andere Weise in einen absoluten Pfad verwandeln.
*
p
ist ein leerer Pfad.
*
p.
native
(
)
beginnt mit einem Verzeichnistrennzeichen.
Anschließend fügt
p.
native
(
)
dem von
*
this
verwalteten Pfadnamen hinzu.
2,3)
Gleich wie
(1)
, akzeptiert jedoch jeden
std::
basic_string
, nullterminierten Multicharacter-String oder einen Eingabe-Iterator, der auf eine nullterminierte Multicharacter-Sequenz zeigt.
4)
Gleich wie
(1)
, akzeptiert jedoch jedes Iteratorpaar, das eine Multicharacter-Zeichenkette bezeichnet.
Inhaltsverzeichnis |
Parameter
| p | - | anzuhängender Pfadname |
| source | - | std:: basic_string , nullterminierter Mehrbyte-Zeichenstring oder ein Eingabe-Iterator, der auf eine nullterminierte Mehrbyte-Zeichensequenz zeigt, die einen Pfadnamen darstellt (entweder im portablen oder im nativen Format) |
| first, last | - | Paar von LegacyInputIterator s , die eine Mehrbyte-Zeichensequenz angeben, die einen Pfadnamen darstellt |
| Typanforderungen | ||
-
InputIt
muss die Anforderungen von
LegacyInputIterator
erfüllen.
|
||
|
-
|
||
Rückgabewert
* this
Ausnahmen
Kann filesystem_error bei zugrundeliegenden OS-API-Fehlern werfen oder std:: bad_alloc bei Speicherallokierungsfehlern.
Beispiel
Diesen Code ausführen
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "C:"; p1 /= "Users"; // fügt keinen Separator ein // "C:Users" ist ein relativer Pfad unter Windows // das Hinzufügen eines Verzeichnisseparators würde ihn zu einem absoluten Pfad machen std::cout << "\"C:\" / \"Users\" == " << p1 << '\n'; p1 /= "batman"; // fügt fs::path::preferred_separator ein, '\' unter Windows std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n'; }
Mögliche Ausgabe:
"C:" / "Users" == "C:Users" "C:" / "Users" / "batman" == "C:Users\batman"
Siehe auch
|
verkettet zwei Pfade ohne Einführung eines Verzeichnistrennzeichens
(öffentliche Elementfunktion) |
|
|
verkettet zwei Pfade mit einem Verzeichnistrennzeichen
(Funktion) |