operator<<,>> (std::filesystem::path)
|
template
<
class
CharT,
class
Traits
>
friend
std::
basic_ostream
<
CharT,Traits
>
&
|
(1) | (начиная с C++17) |
|
template
<
class
CharT,
class
Traits
>
friend
std::
basic_istream
<
CharT,Traits
>
&
|
(2) | (начиная с C++17) |
Выполняет потоковый ввод или вывод для пути p . std:: quoted используется для предотвращения усечения при последующем чтении оператором потокового ввода из-за пробелов.
Эти шаблоны функций не видны при обычном unqualified или qualified lookup , и могут быть найдены только с помощью argument-dependent lookup , когда std::filesystem::path является ассоциированным классом аргументов. Это предотвращает нежелательные преобразования при наличии using namespace std :: filesystem ; using-directive .
Содержание |
Параметры
| os | - | поток для выполнения вывода |
| is | - | поток для выполнения ввода |
| p | - | путь для вставки или извлечения |
Возвращаемое значение
Исключения
Может генерировать исключения, определяемые реализацией.
Возможная реализация
| 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; } |
Пример
#include <filesystem> #include <iostream> int main() { std::cout << std::filesystem::current_path() << '\n'; std::cout << std::filesystem::temp_directory_path() << '\n'; }
Возможный вывод:
"/home/user" "/tmp"
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2989 | C++17 |
allowed insertion of everything convertible to
path
in the presence of a
using-directive
|
made hidden friend |