operator<<,>> (std::filesystem::path)
|
template
<
class
CharT,
class
Traits
>
friend
std::
basic_ostream
<
CharT,Traits
>
&
|
(1) | (desde C++17) |
|
template
<
class
CharT,
class
Traits
>
friend
std::
basic_istream
<
CharT,Traits
>
&
|
(2) | (desde C++17) |
Realiza entrada o salida de flujo en la ruta p . std:: quoted se utiliza para que los espacios no causen truncamiento cuando posteriormente se lea mediante el operador de entrada de flujo.
Estas plantillas de función no son visibles para la búsqueda no calificada o calificada ordinaria, y solo pueden ser encontradas mediante búsqueda dependiente de argumentos cuando std::filesystem::path es una clase asociada de los argumentos. Esto evita conversiones no deseadas en presencia de una using namespace std :: filesystem ; directiva using .
Contenidos |
Parámetros
| os | - | flujo en el que realizar la salida |
| is | - | flujo en el que realizar la entrada |
| p | - | ruta a insertar o extraer |
Valor de retorno
Excepciones
Puede lanzar excepciones definidas por la implementación.
Implementación posible
| operator<< |
|---|
template<class CharT, class Traits> friend std::basic_ostream<CharT,Traits>& operator<<(std::basic_ostream<CharT,Traits>& os, const path& p) { os << std::quoted(p.string<CharT,Traits>()); return os; } |
| operator>> |
template<class CharT, class Traits> friend std::basic_istream<CharT,Traits>& operator>>(std::basic_istream<CharT,Traits>& is, path& p) { std::basic_string<CharT, Traits> t; is >> std::quoted(t); p = t; return is; } |
Ejemplo
#include <filesystem> #include <iostream> int main() { std::cout << std::filesystem::current_path() << '\n'; std::cout << std::filesystem::temp_directory_path() << '\n'; }
Salida posible:
"/home/user" "/tmp"
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2989 | C++17 |
permitía la inserción de todo convertible a
path
en presencia de una
using-directive
|
convertido en hidden friend |