<div dir="rtl"><div dir="ltr">+aaron, reid</div><div dir="ltr"><br></div><div dir="ltr">Here is a patch disabling the iterator null pointer checking in Visual C++ debug mode. This makes std::equal behave as expected instead of asserting on std::equal(nullpt,r nullptr, nullptr), saving an extra check just for Visual C++ debug mode here and there.</div><div dir="ltr"><br></div><div dir="ltr">It should not cause any practical problem debugging as if a null iterator is actually dereferenced (as opposed to compared) the debugger will stop on location.</div><div dir="ltr"><br></div><div dir="ltr">What do you think?</div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2015-08-17 23:45 GMT+03:00 Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On 2015-Aug-17, at 13:43, Yaron Keren <<a href="mailto:yaron.keren@gmail.com">yaron.keren@gmail.com</a>> wrote:<br>
><br>
> I'm trying another approach. The non-null validation goes through a macro defined to a function which possibly may be predefined to nothing. This will disable all null checking on iterators in debug mode which is relevant to additional functions beyond std::equal. In practice it should not be a problem since if a null iterator is actually dereferenced (not only compared) then the debugger stops with invalid access anyhow.<br>
<br>
</span>Well, this would be ideal :).</blockquote></div><br></div>