std::filesystem::path:: path
|
path
(
)
noexcept
;
|
(1) | (seit C++17) |
|
path
(
const
path
&
p
)
;
|
(2) | (seit C++17) |
|
path
(
path
&&
p
)
noexcept
;
|
(3) | (seit C++17) |
|
path
(
string_type
&&
source, format fmt
=
auto_format
)
;
|
(4) | (seit C++17) |
|
template
<
class
Source
>
path ( const Source & source, format fmt = auto_format ) ; |
(5) | (seit C++17) |
|
template
<
class
InputIt
>
path ( InputIt first, InputIt last, format fmt = auto_format ) ; |
(6) | (seit C++17) |
|
template
<
class
Source
>
path ( const Source & source, const std:: locale & loc, format fmt = auto_format ) ; |
(7) | (seit C++17) |
|
template
<
class
InputIt
>
path ( InputIt first, InputIt last, const std:: locale & loc, format fmt = auto_format ) ; |
(8) | (seit C++17) |
Konstruiert ein neues
path
Objekt.
-
- 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).
|
(seit C++20) |
-
- Wenn der Quell-Zeichentyp char16_t ist, wird Konvertierung von UTF-16 zur nativen Dateisystemkodierung verwendet.
- Wenn der Quell-Zeichentyp char32_t ist, wird 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).
value_type
wchar_t
ist, wird die Konvertierung zu Breitzeichen mit dem
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
-Facet von
loc
durchgeführt. Andernfalls wird zuerst zu Breitzeichen mit dem
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
-Facet konvertiert und dann zum nativen Dateisystem-Zeichentyp mit dem
std::
codecvt
<
wchar_t
,value_type
>
-Facet von
loc
konvertiert.
(5)
und
(7)
nehmen nur dann an der Überladungsauflösung teil, wenn
Source
und
path
nicht denselben Typ haben, und entweder:
-
Sourceist eine Spezialisierung von std::basic_string oder std::basic_string_view , oder - std:: iterator_traits < std:: decay_t < Source >> :: value_type gültig ist und einen möglicherweise const-qualifizierten Zeichentyp bezeichnet ( char , char8_t , (seit C++20) char16_t , char32_t , oder wchar_t ).
Inhaltsverzeichnis |
Parameter
| p | - | ein zu kopierender Pfad |
| source | - | std::basic_string , std::basic_string_view , Zeiger auf eine nullterminierte Zeichenkette oder Eingabeiterator mit einem Zeichenwerttyp, der auf eine nullterminierte Zeichensequenz zeigt (der Zeichentyp muss char für Überladung (7) sein) |
| first, last | - | Paar von LegacyInputIterator s , die eine Zeichensequenz spezifizieren |
| fmt | - | Aufzählungswert vom Typ path::format , der angibt, wie das Pfadnamensformat zu interpretieren ist |
| loc | - | Locale, die die zu verwendende Kodierungsumwandlung definiert |
| Typanforderungen | ||
-
InputIt
muss die Anforderungen von
LegacyInputIterator
erfüllen.
|
||
-
InputIt
muss einer der Zeichentypen
char
,
wchar_t
,
char8_t
,
(seit C++20)
char16_t
und
char32_t
sein, um die Überladung
(6)
zu verwenden.
|
||
-
InputIt
muss
char
sein, um die Überladung
(8)
zu verwenden.
|
||
Exceptions
Hinweise
|
Für portable Pfadnamengenerierung aus Unicode-Zeichenketten siehe
|
(bis C++20) |
|
|
(seit C++20) |
Beispiel
#include <filesystem> #include <iostream> namespace fs = std::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 = U"D:/猫.txt"; // UTF-32-Zeichenkette fs::path p4 = u8"~/狗.txt"; // UTF-8-Zeichenkette std::cout << "p1 = " << p1 << '\n' << "p2 = " << p2 << '\n' << "p3 = " << p3 << '\n' << "p4 = " << p4 << '\n'; }
Ausgabe:
p1 = "/usr/lib/sendmail.cf" p2 = "C:\\users\\abcdef\\AppData\\Local\\Temp\\" p3 = "D:/猫.txt" p4 = "~/狗.txt"
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3244 | C++17 |
Constraint, dass
Source
nicht
path
sein kann, fehlte
|
hinzugefügt |
Siehe auch
|
(C++17)
(veraltet in C++20)
|
erstellt einen
path
aus einer UTF-8-kodierten Quelle
(Funktion) |