[libcxx-commits] [PATCH] D117371: [libcxx][test] {move, reverse}_iterator cannot be instantiated for a type with no `operator*` in C++20

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sat Jan 15 06:39:11 PST 2022


Quuxplusone added subscribers: ldionne, Quuxplusone.
Quuxplusone added a comment.

I'd like @ldionne to make an executive decision about whether libc++ should continue to compile `move_iterator<ToIter>`, as an extension, in pre-C++20 modes. (`class ToIter` does not have an `operator*`: //dereferencing// such a `move_iterator` wouldn't compile, but merely forming the //type// is currently legal in libc++ pre-C++20.)
If we think our "extension" is important, then this PR is removing test coverage. If we think no sane user would ever make a move_iterator of a non-iterator type, then this PR is a great simplification.

Scope creep: Same question but in re the fact that `ToIter` doesn't have an `operator++` either. If we discover we also need to add an `operator++` to `ToIter`, would //that// be removing test coverage?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D117371



More information about the libcxx-commits mailing list