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)

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 .
-
El tipo de valor de InputIt debe ser uno de los cuatro tipos de carácter char , wchar_t , char16_t y char32_t para utilizar la sobrecarga (5) .
-
El tipo de valor de 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

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