2619. [filesys.ts] [PDTS] Consider using quoted manipulators

Section: 8.6.1 [filesys.ts::path.io] Status: TS Submitter: FI-8 Opened: 2014-01-20 Last modified: 2017-07-30

Priority: Not Prioritized

View all issues with TS status.

Discussion:

Addresses: filesys.ts

"[Note: Pathnames containing spaces require special handling by the user to avoid truncation when read by the extractor. — end note]" sounds like a quoted manipulator as specified in the C++14 draft in [quoted.manip] would be useful.

Consider using quoted manipulators for stream insertion and extraction.

[2014-02-10, Daniel suggests wording]

[2014-02-12 Applied LWG/SG-3 Issaquah wording tweak to use ISO doc number for reference to C++14.]

Proposed resolution:

  1. Change 8.6.1 [path.io] as indicated:

    template <class charT, class traits>
    basic_ostream<charT, traits>&
    operator<<(basic_ostream<charT, traits>& os, const path& p);
    

    Effects: os << quoted(p.string<charT, traits>()).

    [Note: Pathnames containing spaces require special handling by the user to avoid truncation when read by the extractor. — end note]

    [Note: The quoted function is described in ISO 14882:2014 §27.7.6. — end note]

    Returns: os

    template <class charT, class traits>
    basic_istream<charT, traits>&
    operator>>(basic_istream<charT, traits>& is, path& p);
    

    Effects:

    basic_string<charT, traits> tmp;
    is >> quoted(tmp);
    p = tmp;