[PATCH] D17870: [ADT] Add an 'llvm::seq' function which produces an iterator range over a sequence of values. It increments through the values in the half-open range: [Begin, End), producing those values when indirecting the iterator. It should support integers...

Chandler Carruth via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 3 14:47:55 PST 2016


chandlerc created this revision.
chandlerc added reviewers: hfinkel, dexonsmith.
chandlerc added a subscriber: llvm-commits.
Herald added a subscriber: mcrosier.

..., iterators, and any other type providing these basic arithmetic operations.

This came up in the C++ standards committee meeting, and it seemed like
a useful construct that LLVM might want as well, and I wanted to
understand how easily we could solve it. I suspect this can be used to
write simpler counting loops even in LLVM along the lines of:

  for (int i : seq(0, v.size())) {
    ...
  };

As part of this, I had to fix the lack of a proxy object returned from
the operator[] in our iterator facade.

http://reviews.llvm.org/D17870

Files:
  include/llvm/ADT/Sequence.h
  include/llvm/ADT/iterator.h
  unittests/ADT/CMakeLists.txt
  unittests/ADT/SequenceTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17870.49779.patch
Type: text/x-patch
Size: 5871 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160303/fcc4980c/attachment.bin>


More information about the llvm-commits mailing list