Namespaces
Variants

std::experimental::filesystem::path:: path

From cppreference.net
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.
-
Der Werttyp von InputIt muss einer der vier Zeichentypen char , wchar_t , char16_t und char32_t sein, um die Überladung (5) zu verwenden.
-
Der Werttyp von 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

#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)