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) |
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
.
|
||
-
InputIt
doit être l'un des quatre types de caractères
char
,
wchar_t
,
char16_t
et
char32_t
pour utiliser la surcharge
(5)
.
|
||
-
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
Exécuter ce code
#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) |