operator<<,>> (std::filesystem::path)
|
template
<
class
CharT,
class
Traits
>
friend
std::
basic_ostream
<
CharT,Traits
>
&
|
(1) | (seit C++17) |
|
template
<
class
CharT,
class
Traits
>
friend
std::
basic_istream
<
CharT,Traits
>
&
|
(2) | (seit C++17) |
Führt Stream-Eingabe oder -Ausgabe auf dem Pfad p durch. std:: quoted wird verwendet, damit Leerzeichen kein Abschneiden verursachen, wenn später durch den Stream-Eingabeoperator gelesen wird.
Diese Funktionsvorlagen sind für gewöhnliche unqualified oder qualified lookup nicht sichtbar und können nur durch argument-dependent lookup gefunden werden, wenn std::filesystem::path eine assoziierte Klasse der Argumente ist. Dies verhindert unerwünschte Konvertierungen bei Vorhandensein einer using namespace std :: filesystem ; using-directive .
Inhaltsverzeichnis |
Parameter
| os | - | Stream für die Ausgabe |
| is | - | Stream für die Eingabe |
| p | - | Pfad zum Einfügen oder Extrahieren |
Rückgabewert
Ausnahmen
Kann implementierungsdefinierte Ausnahmen auslösen.
Mögliche Implementierung
| 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; } |
`, `
` und `
Beispiel
#include <filesystem> #include <iostream> int main() { std::cout << std::filesystem::current_path() << '\n'; std::cout << std::filesystem::temp_directory_path() << '\n'; }
Mögliche Ausgabe:
"/home/user" "/tmp"
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 2989 | C++17 |
erlaubte das Einfügen von allem, was in
path
konvertierbar ist, bei Vorhandensein einer
using-directive
|
als versteckter Freund gemacht |