std::experimental::filesystem::path:: path
From cppreference.net
<
cpp
|
experimental
|
fs
|
path
|
path
(
)
;
|
(1) | (Filesystem TS) |
|
path
(
const
path
&
p
)
;
|
(2) | (Filesystem TS) |
|
path
(
path
&&
p
)
;
|
(3) | (Filesystem TS) |
|
template
<
class
Source
>
path ( const Source & source ) ; |
(4) | (Filesystem TS) |
|
template
<
class
InputIt
>
path ( InputIt first, InputIt last ) ; |
(5) | (Filesystem TS) |
|
template
<
class
Source
>
path ( const Source & source, const std:: locale & loc ) ; |
(6) | (Filesystem TS) |
|
template
<
class
InputIt
>
path ( InputIt first, InputIt last, const std:: locale & loc ) ; |
(7) | (Filesystem TS) |
Konstruiert ein neues
path
Objekt.
1)
Konstruiert einen leeren Pfad.
2)
Kopierkonstruktor. Erstellt eine Kopie von
p
.
3)
Move-Konstruktor. Erstellt eine Kopie von
p
,
p
bleibt in einem gültigen aber unspezifizierten Zustand.
4,5)
Konstruiert den Pfad aus einer Zeichensequenz, die bereitgestellt wird durch
source
(4)
, was ein Zeiger oder ein Eingabe-Iterator auf eine nullterminierte Zeichen-/Breitzeichensequenz oder ein
std::basic_string
ist, oder dargestellt als ein Paar von Eingabe-Iteratoren [
first
,
last
)
(5)
. Einer der vier Zeichentypen
char
,
char16_t
,
char32_t
,
wchar_t
ist erlaubt, und die Methode der Konvertierung in den nativen Zeichensatz hängt vom verwendeten Zeichentyp von
source
ab.
-
- Wenn der Quell-Zeichentyp char ist, wird angenommen, dass die Kodierung der Quelle die native Schmalkodierung ist (daher findet auf POSIX-Systemen keine Konvertierung statt).
- Wenn der Quell-Zeichentyp char16_t ist, wird die Konvertierung von UTF-16 zur nativen Dateisystemkodierung verwendet.
- Wenn der Quell-Zeichentyp char32_t ist, wird die Konvertierung von UTF-32 zur nativen Dateisystemkodierung verwendet.
- Wenn der Quell-Zeichentyp wchar_t ist, wird angenommen, dass die Eingabe die native Breitkodierung ist (daher findet auf Windows keine Konvertierung statt).
6,7)
Konstruiert den Pfad aus einer Zeichensequenz, die durch
source
(6)
bereitgestellt wird, was ein Zeiger oder ein Eingabeiterator auf eine nullterminierte Zeichensequenz oder ein
std::string
ist, oder durch ein Paar von Eingabeiteratoren [
first
,
last
)
(7)
repräsentiert wird. Der einzige erlaubte Zeichentyp ist
char
. Verwendet
loc
zur Durchführung der Zeichenkodierungsumwandlung. Wenn
value_type
wchar_t
ist, wird die Konvertierung von
char
nach
wchar_t
unter Verwendung des
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
Facets von
loc
durchgeführt. Andernfalls wird zuerst unter Verwendung des
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
Facets nach
wchar_t
konvertiert und anschließend unter Verwendung des
std::
codecvt
<
wchar_t
, value_type
>
Facets von
loc
in den nativen Dateisystem-Zeichentyp konvertiert.
Inhaltsverzeichnis |
Parameter
| p | - | ein zu kopierender Pfad |
| source | - | ein std::basic_string , ein Zeiger auf eine nullterminierte Zeichenkette oder ein Eingabeiterator mit einem Zeichenwerttyp, der auf eine nullterminierte Zeichensequenz zeigt (der Zeichentyp muss char für Überladung (6) sein) |
| first, last | - | Paar von LegacyInputIterator s , die eine UTF-8-kodierte Zeichensequenz spezifizieren |
| loc | - | Locale, die die zu verwendende Kodierungskonvertierung definiert |
| Typanforderungen | ||
-
InputIt
muss die Anforderungen von
LegacyInputIterator
erfüllen.
|
||
-
InputIt
muss einer der vier Zeichentypen
char
,
wchar_t
,
char16_t
und
char32_t
sein, um die Überladung
(5)
zu verwenden.
|
||
-
InputIt
muss
char
sein, um die Überladung
(7)
zu verwenden.
|
||
Exceptions
1,2)
(keine)
3)
noexcept
Spezifikation:
noexcept
4-7)
(keine)
Hinweise
Für die portable Generierung von Pfadnamen aus Unicode-Zeichenketten, siehe u8path .
Beispiel
Diesen Code ausführen
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/usr/lib/sendmail.cf"; // portables Format fs::path p2 = "C:\\users\\abcdef\\AppData\\Local\\Temp\\"; // natives Format fs::path p3 = L"D:/猫.txt"; // breite Zeichenkette std::cout << "p1 = " << p1 << '\n' << "p2 = " << p2 << '\n' << "p3 = " << p3 << '\n'; }
Ausgabe:
p1 = "/usr/lib/sendmail.cf" p2 = "C:\users\abcdef\AppData\Local\Temp\" p3 = "D:/猫.txt"
Siehe auch
erstellt einen
path
aus einer UTF-8-kodierten Quelle
(Funktion) |