<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Neat! That seems to work:<div class=""><br class=""></div><div class="">```</div><div class=""><div class="">diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h</div><div class="">index 94365dd9ced..47450623826 100644</div><div class="">--- a/llvm/include/llvm/ADT/STLExtras.h</div><div class="">+++ b/llvm/include/llvm/ADT/STLExtras.h</div><div class="">@@ -1044,11 +1044,11 @@ void erase_if(Container &C, UnaryPredicate P) {</div><div class=""> template <typename R></div><div class=""> auto size(R &&Range, typename std::enable_if<</div><div class="">                          std::is_same<typename std::iterator_traits<decltype(</div><div class="">-                                          Range.begin())>::iterator_category,</div><div class="">+                                          adl_begin(Range))>::iterator_category,</div><div class="">                                       std::random_access_iterator_tag>::value,</div><div class="">                          void>::type * = nullptr)</div><div class="">-    -> decltype(std::distance(Range.begin(), Range.end())) {</div><div class="">-  return std::distance(Range.begin(), Range.end());</div><div class="">+    -> decltype(std::distance(adl_begin(Range), adl_end(Range))) {</div><div class="">+  return std::distance(adl_begin(Range), adl_end(Range));</div><div class=""> }</div><div class=""> </div><div class=""> //===----------------------------------------------------------------------===//</div><div class="">diff --git a/llvm/unittests/ADT/IteratorTest.cpp b/llvm/unittests/ADT/IteratorTest.cpp</div><div class="">index 50c3b01bbc7..b335bdec766 100644</div><div class="">--- a/llvm/unittests/ADT/IteratorTest.cpp</div><div class="">+++ b/llvm/unittests/ADT/IteratorTest.cpp</div><div class="">@@ -382,9 +382,13 @@ TEST(ZipIteratorTest, Reverse) {</div><div class=""> TEST(RangeTest, Distance) {</div><div class="">   std::vector<int> v1;</div><div class="">   std::vector<int> v2{1, 2, 3};</div><div class="">+  int a1[] = {1, 2, 3};</div><div class="">+  int a2[5] = {0};</div><div class=""> </div><div class="">   EXPECT_EQ(std::distance(v1.begin(), v1.end()), size(v1));</div><div class="">   EXPECT_EQ(std::distance(v2.begin(), v2.end()), size(v2));</div><div class="">+  EXPECT_EQ(array_lengthof(a1), size(a1));</div><div class="">+  EXPECT_EQ(array_lengthof(a2), size(a2));</div><div class=""> }</div><div class=""> </div><div class=""> TEST(IteratorRangeTest, DropBegin) {</div><div class="">```</div><div class=""><br class=""></div><div class="">Do folks think this is worth supporting?</div><div class=""><br class=""></div><div class="">vedant</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jul 23, 2018, at 4:23 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Seems like the existing size(R &&Range) function could be generalized (by using adl_begin/end rather than member begin/end? Would that be enough) to cover arrays as well, maybe?</div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Wed, Jul 18, 2018 at 11:24 AM Paul Semel via Phabricator via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">paulsemel closed this revision.<br class="">
paulsemel added a comment.<br class="">
<br class="">
I agree with James !<br class="">
<br class="">
<br class="">
Repository:<br class="">
  rL LLVM<br class="">
<br class="">
<a href="https://reviews.llvm.org/D49402" rel="noreferrer" target="_blank" class="">https://reviews.llvm.org/D49402</a><br class="">
<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a><br class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="">
</blockquote></div>
</div></blockquote></div><br class=""></div></div></body></html>