<div dir="ltr">On 16 October 2013 10:27, Gabriel Dos Reis <span dir="ltr"><<a href="mailto:gdr@microsoft.com" target="_blank">gdr@microsoft.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
| No, although the only sentence I can find in n3797 not requiring it today is in<br>
| iterator requirements in general 24.2.1p7: "The result of the application of<br>
| functions in the library to invalid ranges is undefined" and assuming that<br>
| operator< has to be implemented with a function so that the assertion in table 111<br>
| that "< is a total ordering relation" only holds for valid ranges.<br>
|<br>
|<br>
| My goal is that for two objects l and r of type T, 'std::less<T>(l, r)', 'std::less<>(l, r)'<br>
| and 'l < r' should never diverge,<br>
<br>
</div>I am not sure expect what you mean by "diverge". I am hoping you aren't arguing<br>
that std::less should just be a different syntax for operator<.<br></blockquote><div><br></div><div>Yes, I am. It's a long term goal. :-) If we didn't want that, we should never have called it less.<br></div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
That said, I am unsure how you answer "no" above squares with your goal<br>
as stated here.<br></blockquote><div><br></div><div>How does 'less<deque<T>::iterator>()(l, r)' differ from 'less<>()(l, r)' differ from 'l < r'?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
My own personal view (not that of chair) is that if std::less<T>(l,r) and "l < r" are<br>
both defined, then they should yield the same answer.<br></blockquote><div><br></div><div>Which fails for pointers.<br></div></div>-- <br> Nevin ":-)" Liber <mailto:<a href="mailto:nevin@eviloverlord.com" target="_blank">nevin@eviloverlord.com</a>> (847) 691-1404
</div></div>