Boost C++ Libraries: Ticket #3937: equal_pointees and invalid pointers https://svn.boost.org/trac10/ticket/3937 <p> In file boost/utility/compare_pointees.hpp function equal_pointees treat invalid pointers as a positive value. </p> <p> There should be added another function which treats invalid pointers as a negative value. </p> <div class="wiki-code"><div class="code"><pre> <span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc">OptionalPointee</span><span class="o">&gt;</span> <span class="kr">inline</span> <span class="kt">bool</span> <span class="n">equal_pointees</span> <span class="p">(</span> <span class="n">OptionalPointee</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">x</span><span class="p">,</span> <span class="n">OptionalPointee</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">y</span> <span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="p">(</span><span class="o">!</span><span class="n">x</span><span class="p">)</span> <span class="o">!=</span> <span class="p">(</span><span class="o">!</span><span class="n">y</span><span class="p">)</span> <span class="o">?</span> <span class="nb">false</span> <span class="o">:</span> <span class="p">(</span> <span class="o">!</span><span class="n">x</span> <span class="o">?</span> <span class="nb">true</span> <span class="o">:</span> <span class="p">(</span><span class="o">*</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="p">(</span><span class="o">*</span><span class="n">y</span><span class="p">)</span> <span class="p">)</span> <span class="p">;</span> <span class="p">}</span> <span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc">OptionalPointee</span><span class="o">&gt;</span> <span class="kr">inline</span> <span class="kt">bool</span> <span class="n">equal_pointees_false</span> <span class="p">(</span> <span class="n">OptionalPointee</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">x</span><span class="p">,</span> <span class="n">OptionalPointee</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">y</span> <span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="p">(</span><span class="o">!</span><span class="n">x</span><span class="p">)</span> <span class="o">!=</span> <span class="p">(</span><span class="o">!</span><span class="n">y</span><span class="p">)</span> <span class="o">?</span> <span class="nb">false</span> <span class="o">:</span> <span class="p">(</span> <span class="o">!</span><span class="n">x</span> <span class="o">?</span> <span class="nb">false</span> <span class="o">:</span> <span class="p">(</span><span class="o">*</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="p">(</span><span class="o">*</span><span class="n">y</span><span class="p">)</span> <span class="p">)</span> <span class="p">;</span> <span class="p">}</span> </pre></div></div><p> Thanx. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/3937 Trac 1.4.3 Steven Watanabe Thu, 25 Feb 2010 15:52:24 GMT <link>https://svn.boost.org/trac10/ticket/3937#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3937#comment:1</guid> <description> <p> I don't understand what you mean by negative and positive. equal_pointees returns true if both pointers are null or if both pointers are non-null and their targets are equal. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Steven Watanabe</dc:creator> <pubDate>Fri, 18 Jun 2010 14:38:35 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/3937#comment:2 https://svn.boost.org/trac10/ticket/3937#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> Ticket