std::filesystem::path::generic_string, std::filesystem::path::generic_wstring, std::filesystem::path::generic_u8string, std::filesystem::path::generic_u16string, std::filesystem::path::generic_u32string
De es.cppreference.net
template< class CharT, class Traits = std::char_traits<CharT>,
class Alloc = std::allocator<CharT> >
std::basic_string<CharT,Traits,Alloc>
generic_string( const Alloc& a = Alloc() ) const;
|
(1) | (desde C++17) |
std::string generic_string() const;
|
(2) | (desde C++17) |
std::wstring generic_wstring() const;
|
(3) | (desde C++17) |
std::u16string generic_u16string() const;
|
(4) | (desde C++17) |
std::u32string generic_u32string() const;
|
(5) | (desde C++17) |
std::string generic_u8string() const;
|
(6) | (desde C++17) (hasta C++20) |
std::u8string generic_u8string() const;
|
(desde C++20) | |
Devuelve la ruta interna en formato de ruta genérica, convertida a un tipo de cadena específico. La conversión, si la hay, se especifica de la siguiente manera:
- Si
path::value_typeeschar, la conversión, si la hay, depende del sistema. Este es el caso en sistemas POSIX típicos (como Linux), donde la codificación nativa es UTF-8 ystring()no realiza ninguna conversión. - De lo contrario, si
path::value_typeeswchar_t, la conversión, si la hay, no está especificada. Este es el caso en Windows, dondewchar_tes de 16 bits y la codificación nativa es UTF-16. - De lo contrario, si
path::value_typeeschar16_t, la codificación nativa es UTF-16 y el método de conversión no está especificado. - De lo contrario, si
path::value_typeeschar32_t, la codificación nativa es UTF-32 y el método de conversión no está especificado. - De lo contrario, si
path::value_typeeschar8_t, la codificación nativa es UTF-8 y el método de conversión no está especificado.
El / carácter se utiliza como separador de directorios.
1) Todas las asignaciones de memoria son realizadas por
a.6) La codificación del resultado en el caso de
u8string() es siempre UTF-8.Parámetros
| a | - | asignador para construir la cadena |
| Requisitos de tipo | ||
-
CharT
debe ser uno de los tipos de caracteres codificados (
char
,
wchar_t
,
char8_t
(desde C++20)
,
char16_t
y
char32_t
).
|
||
Valor de retorno
La ruta interna en formato de ruta genérica, convertida al tipo de cadena especificado.
Excepciones
Puede lanzar excepciones definidas por la implementación.
Ejemplo
Ejecutar este código
#include <cstddef> #include <filesystem> #include <iomanip> #include <iostream> #include <span> #include <string_view> void print(std::string_view rem, auto const& str) { std::cout << rem << std::hex << std::uppercase << std::setfill('0'); for (const auto b : std::as_bytes(std::span{str})) std::cout << std::setw(2) << std::to_integer<unsigned>(b) << ' '; std::cout << '\n'; } int main() { std::filesystem::path p{"/家/屋"}; std::cout << p << '\n'; print("string : ", p.generic_string()); print("u8string : ", p.generic_u8string()); print("u16string : ", p.generic_u16string()); print("u32string : ", p.generic_u32string()); print("wstring : ", p.generic_wstring()); }
Salida posible:
"/家/屋" string : 2F E5 AE B6 2F E5 B1 8B u8string : 2F E5 AE B6 2F E5 B1 8B u16string : 2F 00 B6 5B 2F 00 4B 5C u32string : 2F 00 00 00 B6 5B 00 00 2F 00 00 00 4B 5C 00 00 wstring : 2F 00 00 00 B6 5B 00 00 2F 00 00 00 4B 5C 00 00
Véase también
|
devuelve la ruta en formato de nombre de ruta nativo convertido a una cadena
(función miembro pública) |