<div dir="ltr">On 15 October 2013 18:14, Gabriel Dos Reis <span dir="ltr">&lt;<a href="mailto:gdr@microsoft.com" target="_blank">gdr@microsoft.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Nevin --<br>
Are you asking that operator&lt; be a total order on std::deque&lt;T&gt;::iterator?<br></blockquote><div><br></div><div>No, although the only sentence I can find in n3797 not requiring it today is in iterator requirements in general 24.2.1p7: &quot;The result of the application of functions in the library to invalid ranges is undefined&quot; and assuming that operator&lt; has to be implemented with a function so that the assertion in table 111 that &quot;&lt; is a total ordering relation&quot; only holds for valid ranges.<br>

<br></div><div>My goal is that for two objects l and r of type T, &#39;std::less&lt;T&gt;(l, r)&#39;, &#39;std::less&lt;&gt;(l, r)&#39; and &#39;l &lt; r&#39; should never diverge, because anything else makes usage expert-only.<br>

</div></div>-- <br> Nevin &quot;:-)&quot; Liber  &lt;mailto:<a href="mailto:nevin@eviloverlord.com" target="_blank">nevin@eviloverlord.com</a>&gt;  (847) 691-1404
</div></div>