[libcxx-commits] [PATCH] D102121: [libcxx][ranges] adds _`non-propagating-cache`_

Christopher Di Bella via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sat May 8 18:58:52 PDT 2021


cjdb created this revision.
cjdb added reviewers: tcanens, ldionne, EricWF, zoecarver, Mordante, curdeius, Quuxplusone.
Herald added a subscriber: mgorny.
cjdb requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

_`non-propagating-cache`_ is a local cache that doesn't pass its value
on after a move (instead invalidating both caches) or a copy (instead
invalidating the copyer).

Formal wording first appears in P2328 <https://reviews.llvm.org/P2328>, a paper that makes retroactive
changes to C++20, but the type has always been necessary for a correct
implementation of ranges such as `std::ranges::drop_view`.

Depends on D102119 <https://reviews.llvm.org/D102119>.
Blocks D102037 <https://reviews.llvm.org/D102037>.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D102121

Files:
  libcxx/include/CMakeLists.txt
  libcxx/include/__ranges/non_propagating_cache.h
  libcxx/test/libcxx/ranges/range.nonprop.cache/cache_disabled.compile.pass.cpp
  libcxx/test/libcxx/ranges/range.nonprop.cache/copy_assign.pass.cpp
  libcxx/test/libcxx/ranges/range.nonprop.cache/copy_ctor.pass.cpp
  libcxx/test/libcxx/ranges/range.nonprop.cache/emplace_deref.pass.cpp
  libcxx/test/libcxx/ranges/range.nonprop.cache/move_assign.pass.cpp
  libcxx/test/libcxx/ranges/range.nonprop.cache/move_ctor.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D102121.343881.patch
Type: text/x-patch
Size: 11196 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210509/b01b97bb/attachment-0001.bin>


More information about the libcxx-commits mailing list