[libcxx-commits] [PATCH] D113161: [libc++] Implement P1989R2: range constructor for string_view

Joe Loser via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sat Nov 13 19:50:25 PST 2021


jloser marked an inline comment as done.
jloser added a subscriber: cjdb.
jloser added a comment.

I don't yet fully understand why CI is failing some range concepts that were previously true for the type `const std::filesystem::path&` in a few tests. It's only when the `std::string_view` constructor is implemented; they work fine without it (since that's just top-of-tree from `libc++` library code perspective).

I //think// one of them is a Clang bug in eager instantiation of constraints in `libcxx/test/std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.cpp` - specifically these below. They all fail, but only when the new `std::string_view` constructor is implemented.

  static_assert(std::same_as<std::ranges::iterator_t<fs::path const>, fs::path::const_iterator>);
  static_assert(std::ranges::common_range<fs::path const>);
  static_assert(std::ranges::bidirectional_range<fs::path const>);

The GCC11 CI failures are due to a change in behavior with `ranges::begin` for `const std::filesystem::path` that I don't yet understand.  Possibly a `libc++` bug in `ranges::begin`?

Any ideas, @Quuxplusone @cjdb @ldionne?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D113161/new/

https://reviews.llvm.org/D113161



More information about the libcxx-commits mailing list