[all-commits] [llvm/llvm-project] 34206b: [libc++] Overhaul std::quoted; fix its relationshi...

Quuxplusone via All-commits all-commits at lists.llvm.org
Mon Mar 7 10:29:20 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 34206b869d0d4533aa6a2f18071563fe40945869
      https://github.com/llvm/llvm-project/commit/34206b869d0d4533aa6a2f18071563fe40945869
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2022-03-07 (Mon, 07 Mar 2022)

  Changed paths:
    M libcxx/docs/ReleaseNotes.rst
    M libcxx/include/__string
    M libcxx/include/iomanip
    A libcxx/test/std/input.output/iostream.format/quoted.manip/quoted_traits.compile.pass.cpp

  Log Message:
  -----------
  [libc++] Overhaul std::quoted; fix its relationship to character traits.

Move `__quoted_output_proxy` into the one file that uses it.

A `const char*` has no associated traits class, so `std::quoted("literal")`
should be printable into any basic_ostream regardless of traits.

Use hidden-friend `operator<<` and `operator>>`, since we're permitted to.
(The exact signature is unspecified because the class itself is unspecified.)

We shouldn't support `std::quoted("literal")` in C++03 or C++11 mode.
(We do need `std::__quoted(s)` and `std::__quoted(cs)` in C++11 mode,
because they're used by `std::__fs::filesystem::path`.)

Differential Revision: https://reviews.llvm.org/D120135




More information about the All-commits mailing list