[PATCH] D63632: Update the llvm::enumerate utility class result_pair to use the 'iterator_traits<R>::reference' instead of 'ValueOfIter<R> &'.
Nicolas Guillemot via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 16 19:25:24 PDT 2021
nlguillemot added inline comments.
Herald added a reviewer: bollu.
================
Comment at: llvm/include/llvm/ADT/STLExtras.h:1525
std::size_t index() const { return Index; }
- const ValueOfRange<R> &value() const { return *Iter; }
- ValueOfRange<R> &value() { return *Iter; }
+ const value_reference value() const { return *Iter; }
+ value_reference value() { return *Iter; }
----------------
I think this doesn't match the previous behavior.
I think `const value_reference` is like `T & const`, not like `const T &`.
I wish I could suggest using a typedef like `const_value_reference = (...)::const_reference` and returning that, but `iterator_traits` doesn't have such a member typedef.
Found this due to a compile error in some downstream code.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D63632/new/
https://reviews.llvm.org/D63632
More information about the llvm-commits
mailing list