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

< 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) (文件系统 TS)
template< class CharT, class Traits >

std::basic_istream<CharT,Traits>&

    operator>>( std::basic_istream<CharT,Traits>& is, path& p );
(2) (文件系统 TS)

对路径 p 实施流输入或输出。使用 std::quoted 以使空格不会造成之后的流输入运算符读取发生截断。

参数

os - 要实施输出的流
is - 要实施输入的流
p - 要插入或提取的路径

返回值

1) os
2) is

异常

可能会抛出由实现定义的异常。

可能的实现

版本一
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;
}
版本二
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;
}

示例