Namensräume
Varianten
Aktionen

operator<<,>>(std::experimental::filesystem::path)

Von cppreference.com
< cpp‎ | experimental‎ | fs‎ | path
 
 
 
 
 
template< class CharT, class Traits >

std::basic_ostream<CharT,Traits>&

    operator<<( std::basic_ostream<CharT,Traits>& os, const path& p );
(1) (Dateisystem-TS)
template< class CharT, class Traits >

std::basic_istream<CharT,Traits>&

    operator>>( std::basic_istream<CharT,Traits>& is, path& p );
(2) (Dateisystem-TS)

Führt Stream-Ein- oder -Ausgabe für den Pfad p durch. std::quoted wird verwendet, damit Leerzeichen beim späteren Lesen durch den Stream-Eingabeoperator nicht zu einer Trunkierung führen.

Inhalt

[bearbeiten] Parameter

os - Stream, auf dem die Ausgabe erfolgen soll
ist - Stream, auf dem die Eingabe ausgeführt werden soll
p - Pfad zum Einfügen oder Extrahieren

[bearbeiten] Rückgabewert

1) os
2) is

[edit] Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

[bearbeiten] Mögliche Implementierung

Erste Version
template<class CharT, class Traits>
std::basic_ostream<CharT,Traits>&
    operator<<(std::basic_ostream<CharT,Traits>& os, const path& p)
{
    os << std::quoted(p.string<CharT,Traits>());
    return os;
}
Zweite Version
template<class CharT, class Traits>
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;
}

[bearbeiten] Beispiel