<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 10, 2015 at 5:16 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":d3q" class="a3s" style="overflow:hidden">Author: chandlerc<br>
Date: Sat Jan 10 19:16:26 2015<br>
New Revision: 225592<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=225592&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=225592&view=rev</a><br>
Log:<br>
[<span class="il">ADT</span>] Remove the unused default constructor for iterator_range.<br>
<br>
This default constructor is a bit weird. It left the range in an invalid<br>
state. That might be reasonable so that you can construct a local<br>
iterator range and assign to it based on some logic to compute the range<br>
you want. If folks would like to support that use case, I can add it<br>
back, but in 238-odd usages none have actually wanted to do this. ;]</div></blockquote></div><br>Actually, there were 3 usages in Clang.</div><div class="gmail_extra"><br></div><div class="gmail_extra">We could value initialize the iterators in the default constructor, but that would preclude using iterator_range with InputIterators (restricting it to ForwardIterators and stronger). Or we could only provide the default constructor when the iterators provide a default constructor, but that's lots of template goop for what is otherwise super simple. And I've only found 3 usages that were easily "fixed" to just pass the iterators explicitly. But I wanted to mention the option here in case others feel strongly we should make empty-range construction simple in this way.</div><div class="gmail_extra"><br></div><div class="gmail_extra">-Chandler</div></div>