[libcxx-commits] [PATCH] D99854: [libcxx] adds `cpp17-.*iterator` concepts (as `__legacy_.*iterator`)

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Apr 15 11:23:27 PDT 2021


ldionne added inline comments.


================
Comment at: libcxx/include/iterator:659
+template<class _Ip>
+concept __legacy_iterator =
+  requires(_Ip __i) {
----------------
@CaseyCarter  Is it intended that the exposition-only concepts defined in http://eel.is/c++draft/iterator.traits#2 are not a literal translation of tables like http://eel.is/c++draft/iterator.cpp17#tab:iterator?

For example, the exposition-only concept `cpp17-iterator` adds the requirement `{ *i++ } -> can-reference`, whereas the `Cpp17Iterator` concept does not contain that requirement.

There are similar differences in the other iterator concepts too, like `operator->` being in the table but not in the exposition-only concept.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99854



More information about the libcxx-commits mailing list