std::filesystem::path:: path
|
path
(
)
noexcept
;
|
(1) | (desde C++17) |
|
path
(
const
path
&
p
)
;
|
(2) | (desde C++17) |
|
path
(
path
&&
p
)
noexcept
;
|
(3) | (desde C++17) |
|
path
(
string_type
&&
source, format fmt
=
auto_format
)
;
|
(4) | (desde C++17) |
|
template
<
class
Source
>
path ( const Source & source, format fmt = auto_format ) ; |
(5) | (desde C++17) |
|
template
<
class
InputIt
>
path ( InputIt first, InputIt last, format fmt = auto_format ) ; |
(6) | (desde C++17) |
|
template
<
class
Source
>
path ( const Source & source, const std:: locale & loc, format fmt = auto_format ) ; |
(7) | (desde C++17) |
|
template
<
class
InputIt
>
path ( InputIt first, InputIt last, const std:: locale & loc, format fmt = auto_format ) ; |
(8) | (desde C++17) |
Construye un nuevo
path
objeto.
-
- Si el tipo de carácter fuente es char , se asume que la codificación de la fuente es la codificación estrecha nativa (por lo que no se realiza conversión en sistemas POSIX).
|
(desde C++20) |
-
- Si el tipo de carácter fuente es char16_t , se utiliza la conversión de UTF-16 a la codificación nativa del sistema de archivos.
- Si el tipo de carácter fuente es char32_t , se utiliza la conversión de UTF-32 a la codificación nativa del sistema de archivos.
- Si el tipo de carácter fuente es wchar_t , se asume que la entrada está en la codificación ancha nativa (por lo que no se realiza conversión en Windows).
value_type
es
wchar_t
, convierte a ancho usando el facet
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
de
loc
. De lo contrario, primero convierte a ancho usando el facet
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
y luego convierte al tipo de carácter nativo del sistema de archivos usando el facet
std::
codecvt
<
wchar_t
,value_type
>
de
loc
.
(5)
y
(7)
participan en la resolución de sobrecarga solo si
Source
y
path
no son del mismo tipo, y ya sea:
-
Sourcees una especialización de std::basic_string o std::basic_string_view , o - std:: iterator_traits < std:: decay_t < Source >> :: value_type es válido y denota un tipo de carácter de codificación posiblemente calificado como const ( char , char8_t , (desde C++20) char16_t , char32_t , o wchar_t ).
Contenidos |
Parámetros
| p | - | una ruta a copiar |
| source | - | std::basic_string , std::basic_string_view , puntero a una cadena de caracteres terminada en nulo, o iterador de entrada con un tipo de valor carácter que apunte a una secuencia de caracteres terminada en nulo (el tipo de carácter debe ser char para la sobrecarga (7) ) |
| first, last | - | par de LegacyInputIterator s que especifican una secuencia de caracteres |
| fmt | - | enumerador de tipo path::format que especifica cómo se debe interpretar el formato del nombre de ruta |
| loc | - | configuración regional que define la conversión de codificación a utilizar |
| Requisitos de tipo | ||
-
InputIt
debe cumplir con los requisitos de
LegacyInputIterator
.
|
||
-
InputIt
debe ser uno de los tipos de carácter
char
,
wchar_t
,
char8_t
,
(desde C++20)
char16_t
y
char32_t
para usar la sobrecarga
(6)
.
|
||
-
InputIt
debe ser
char
para usar la sobrecarga
(8)
.
|
||
Excepciones
Notas
|
Para la generación portable de nombres de ruta a partir de cadenas Unicode, consulte
|
(hasta C++20) |
|
|
(desde C++20) |
Ejemplo
#include <filesystem> #include <iostream> namespace fs = std::filesystem; int main() { fs::path p1 = "/usr/lib/sendmail.cf"; // formato portable fs::path p2 = "C:\\users\\abcdef\\AppData\\Local\\Temp\\"; // formato nativo fs::path p3 = U"D:/猫.txt"; // cadena UTF-32 fs::path p4 = u8"~/狗.txt"; // cadena UTF-8 std::cout << "p1 = " << p1 << '\n' << "p2 = " << p2 << '\n' << "p3 = " << p3 << '\n' << "p4 = " << p4 << '\n'; }
Salida:
p1 = "/usr/lib/sendmail.cf" p2 = "C:\\users\\abcdef\\AppData\\Local\\Temp\\" p3 = "D:/猫.txt" p4 = "~/狗.txt"
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Se aplica a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3244 | C++17 |
faltaba la restricción de que
Source
no puede ser
path
|
añadida |
Véase también
|
(C++17)
(obsoleto en C++20)
|
crea un
path
desde una fuente codificada en UTF-8
(función) |