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)

Construit un nouvel objet path .

1) Construit un chemin vide.
2) Constructeur de copie. Construit une copie de p .
3) Constructeur de déplacement. Construit une copie de p , p est laissé dans un état valide mais non spécifié.
4,5) Construit le chemin à partir d'une séquence de caractères fournie par source (4) , qui est un pointeur ou un itérateur d'entrée vers une séquence de caractères/large caractères terminée par un caractère nul, ou une std::basic_string , ou représentée comme une paire d'itérateurs d'entrée [ first , last ) (5) . N'importe lequel des quatre types de caractères char , char16_t , char32_t , wchar_t est autorisé, et la méthode de conversion vers le jeu de caractères natif dépend du type de caractère utilisé par source .
  • Si le type de caractère source est char , l'encodage de la source est supposé être l'encodage natif étroit (donc aucune conversion n'a lieu sur les systèmes POSIX).
  • Si le type de caractère source est char16_t , la conversion de UTF-16 vers l'encodage natif du système de fichiers est utilisée.
  • Si le type de caractère source est char32_t , la conversion de UTF-32 vers l'encodage natif du système de fichiers est utilisée.
  • Si le type de caractère source est wchar_t , l'entrée est supposée être l'encodage natif large (donc aucune conversion n'a lieu sur Windows).
6,7) Construit le chemin à partir d'une séquence de caractères fournie par source (6) , qui est un pointeur ou un itérateur d'entrée vers une séquence de caractères terminée par un caractère nul ou une std::string , ou représentée par une paire d'itérateurs d'entrée [ first , last ) (7) . Le seul type de caractère autorisé est char . Utilise loc pour effectuer la conversion d'encodage des caractères. Si value_type est wchar_t , convertit en large en utilisant la facette std:: codecvt < wchar_t , char , std:: mbstate_t > de loc . Sinon, convertit d'abord en large en utilisant la facette std:: codecvt < wchar_t , char , std:: mbstate_t > puis convertit en type de caractère natif du système de fichiers en utilisant la facette std:: codecvt < wchar_t , value_type > de loc .

Table des matières

Paramètres

p - un chemin à copier
source - un std::basic_string , un pointeur vers une chaîne de caractères terminée par un caractère nul, ou un itérateur d'entrée avec un type de valeur caractère qui pointe vers une séquence de caractères terminée par un caractère nul (le type de caractère doit être char pour la surcharge (6)
first, last - paire d'itérateurs LegacyInputIterator s qui spécifient une séquence de caractères encodée en UTF-8
loc - locale qui définit la conversion d'encodage à utiliser
Exigences de type
-
InputIt doit satisfaire aux exigences de LegacyInputIterator .
-
Le type de valeur de InputIt doit être l'un des quatre types de caractères char , wchar_t , char16_t et char32_t pour utiliser la surcharge (5) .
-
Le type de valeur de InputIt doit être char pour utiliser la surcharge (7) .

Exceptions

1,2) (aucun)
3)
noexcept spécification :
noexcept
4-7) (aucun)

Notes

Pour la génération portable de noms de chemin à partir de chaînes Unicode, consultez u8path .

Exemple

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::path p1 = "/usr/lib/sendmail.cf"; // format portable
    fs::path p2 = "C:\\users\\abcdef\\AppData\\Local\\Temp\\"; // format natif
    fs::path p3 = L"D:/猫.txt"; // chaîne large
    std::cout << "p1 = " << p1 << '\n'
              << "p2 = " << p2 << '\n'
              << "p3 = " << p3 << '\n';
}

Sortie :

p1 = "/usr/lib/sendmail.cf"
p2 = "C:\users\abcdef\AppData\Local\Temp\"
p3 = "D:/猫.txt"

Voir aussi

crée un path à partir d'une source encodée en UTF-8
(fonction)