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) |
Construye un nuevo
path
objeto.
1)
Construye una ruta vacía.
2)
Constructor de copia. Construye una copia de
p
.
3)
Constructor de movimiento. Construye una copia de
p
,
p
queda en un estado válido pero no especificado.
4,5)
Construye la ruta a partir de una secuencia de caracteres proporcionada por
source
(4)
, que es un puntero o un iterador de entrada a una secuencia de caracteres/anchos de caracteres terminada en nulo o una
std::basic_string
, o representada como un par de iteradores de entrada [
first
,
last
)
(5)
. Se permite cualquiera de los cuatro tipos de caracteres
char
,
char16_t
,
char32_t
,
wchar_t
, y el método de conversión al conjunto de caracteres nativo depende del tipo de carácter utilizado por
source
.
-
- 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).
- 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 es la codificación ancha nativa (por lo que no se realiza conversión en Windows).
6,7)
Construye la ruta a partir de una secuencia de caracteres proporcionada por
source
(6)
, que es un puntero o un iterador de entrada a una secuencia de caracteres terminada en nulo o una
std::string
, o representada como un par de iteradores de entrada [
first
,
last
)
(7)
. El único tipo de carácter permitido es
char
. Utiliza
loc
para realizar la conversión de codificación de caracteres. Si
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
.
Contenidos |
Parámetros
| p | - | una ruta a copiar |
| source | - | un std::basic_string , puntero a una cadena de caracteres terminada en nulo, o un iterador de entrada con un tipo de valor de carácter que apunta a una secuencia de caracteres terminada en nulo (el tipo de carácter debe ser char para la sobrecarga (6) |
| first, last | - | par de LegacyInputIterator s que especifican una secuencia de caracteres codificada en UTF-8 |
| loc | - | localización 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 cuatro tipos de carácter
char
,
wchar_t
,
char16_t
y
char32_t
para utilizar la sobrecarga
(5)
.
|
||
-
InputIt
debe ser
char
para utilizar la sobrecarga
(7)
.
|
||
Excepciones
1,2)
(ninguno)
3)
noexcept
especificación:
noexcept
4-7)
(ninguno)
Notas
Para la generación portable de nombres de ruta a partir de cadenas Unicode, consulte u8path .
Ejemplo
Ejecutar este código
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::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 = L"D:/猫.txt"; // cadena ancha std::cout << "p1 = " << p1 << '\n' << "p2 = " << p2 << '\n' << "p3 = " << p3 << '\n'; }
Salida:
p1 = "/usr/lib/sendmail.cf" p2 = "C:\users\abcdef\AppData\Local\Temp\" p3 = "D:/猫.txt"
Véase también
crea un
path
desde una fuente codificada en UTF-8
(función) |