<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On May 13, 2015, at 3:18 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=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, May 13, 2015 at 3:07 PM, Pete Cooper <span dir="ltr" class=""><<a href="mailto:peter_cooper@apple.com" target="_blank" class="">peter_cooper@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">It compiled fine.  Running ‘make check-all’ now.  If it passes with this single version then are you ok with me committing?</div></blockquote><div class=""><br class="">Yep, let's go with that. I feel better about it so we're not committing completely dead/untested code.<br class=""></div></div></div></div></div></blockquote>Great, thanks!  r237301</div><div><br class=""></div><div>Cheers,</div><div>Pete<br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="color:#bb2ca2" class="">template</span><<span style="color:#bb2ca2" class="">typename</span> R, <span style="color:#bb2ca2" class="">class</span> UnaryPredicate></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="color:#bb2ca2" class="">bool</span> all_of(R &&Range, UnaryPredicate &&P) {</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class="">  <span style="color:#bb2ca2" class="">return</span> <span style="color:#703daa" class="">std</span>::all_of(Range.begin(), Range.end(),</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class="">                     <span style="color:#703daa" class="">std</span>::forward<UnaryPredicate>(P));</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class="">}</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class="">Cheers,</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class="">Pete</div><div class=""><div class="h5"><div class=""><blockquote type="cite" class=""><div class="">On May 13, 2015, at 2:54 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank" class="">dblaikie@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">Drop the static inline (the static part would cause ODR violations in other inline functions in headers that call this function, the inline part is mostly redundant because it just changes the linkage which implicit template specializations already have anyway)<br class=""><br class="">Wonder if there's a way to get these down to one implementation...<br class=""><br class=""><div class="">template<typename Range, class UnaryPredicate></div><div class="">bool all_of(Range &&R, UnaryPredicate &&P) {</div><div class="">  return std::all_of(R.begin(), R.end(), std::forward<UnaryPredicate>(P));</div><div class="">}<br class=""><br class="">Maybe?</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, May 13, 2015 at 2:41 PM, Pete Cooper <span dir="ltr" class=""><<a href="mailto:peter_cooper@apple.com" target="_blank" class="">peter_cooper@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">Hey David<div class=""><br class=""></div><div class="">(For the benefit of mailing archives, this is a spin-off from a discussion on <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150511/276283.html" target="_blank" class="">http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150511/276283.html</a>)</div><div class=""><br class=""></div><div class="">This is the patch we discussed to add an llvm version of std::all_of which doesn’t need begin/end.  Also added a user of it to LoopInfo which was the motivating example you pointed out.</div><div class=""><br class=""></div><div class="">Comments welcome.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Pete</div><div class=""><br class=""></div><div class=""></div></div><br class=""><div style="word-wrap:break-word" class=""><div class=""></div></div><br class=""></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></div></div>
</div></blockquote></div><br class=""></body></html>