<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[invalid operator&amp;lt;]]></title><description><![CDATA[<p>Folgender Test-Code:</p>
<pre><code class="language-cpp">bool sortVisiblePatchesFrontToBack(const IndexIntervalDesc&amp; lhs, const IndexIntervalDesc&amp; rhs) {
	return true;
}

void TQT::computeVisiblePatches(const ICamera&amp; cam, std::vector&lt;IndexIntervalDesc&gt;&amp; patches) {
   for(int i=0; i &lt; 4; i++)
     tier1Quadrants[i]-&gt;traverse(cam, patches);
   std::sort(patches.begin(), patches.end(), sortVisiblePatchesFrontToBack); // Hier fliegt die assertion
}
</code></pre>
<p>Liefert mir beim std::sort eine Debug Assertion Failed! Expression: invalid operator&lt;</p>
<p>Was ist da der Fehler im Code?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/225883/invalid-operator-lt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 08:34:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/225883.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Oct 2008 14:08:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to invalid operator&amp;lt; on Sun, 26 Oct 2008 14:08:36 GMT]]></title><description><![CDATA[<p>Folgender Test-Code:</p>
<pre><code class="language-cpp">bool sortVisiblePatchesFrontToBack(const IndexIntervalDesc&amp; lhs, const IndexIntervalDesc&amp; rhs) {
	return true;
}

void TQT::computeVisiblePatches(const ICamera&amp; cam, std::vector&lt;IndexIntervalDesc&gt;&amp; patches) {
   for(int i=0; i &lt; 4; i++)
     tier1Quadrants[i]-&gt;traverse(cam, patches);
   std::sort(patches.begin(), patches.end(), sortVisiblePatchesFrontToBack); // Hier fliegt die assertion
}
</code></pre>
<p>Liefert mir beim std::sort eine Debug Assertion Failed! Expression: invalid operator&lt;</p>
<p>Was ist da der Fehler im Code?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605092</guid><dc:creator><![CDATA[Sortiera]]></dc:creator><pubDate>Sun, 26 Oct 2008 14:08:36 GMT</pubDate></item><item><title><![CDATA[Reply to invalid operator&amp;lt; on Sun, 26 Oct 2008 14:17:42 GMT]]></title><description><![CDATA[<p>Du benötigst ein <em>strict weak ordering criterion</em> (eindeutiges Sortierkriterium), was in deiner Funktion nicht gegeben ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605096</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 26 Oct 2008 14:17:42 GMT</pubDate></item><item><title><![CDATA[Reply to invalid operator&amp;lt; on Sun, 26 Oct 2008 14:21:37 GMT]]></title><description><![CDATA[<p>Hm, aber woher weiß denn der Compiler, dass meine Funktion nur eine Dummy-Funktion ist? Syntaktisch ist mein Prädikat ja richtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605097</guid><dc:creator><![CDATA[Sortiera]]></dc:creator><pubDate>Sun, 26 Oct 2008 14:21:37 GMT</pubDate></item><item><title><![CDATA[Reply to invalid operator&amp;lt; on Sun, 26 Oct 2008 14:25:45 GMT]]></title><description><![CDATA[<p>Der Compiler weiss es gar nicht, der Fehler tritt ja zur Laufzeit im Debugger auf.</p>
<p>In <code>std::sort</code> scheint es eine Assertion zu geben, die überprüft, ob eine Sortierung nach jenem Kriterium überhaupt möglich ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605101</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 26 Oct 2008 14:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to invalid operator&amp;lt; on Sun, 26 Oct 2008 14:25:51 GMT]]></title><description><![CDATA[<p>Sortiera schrieb:</p>
<blockquote>
<p>Folgender Test-Code:</p>
<pre><code class="language-cpp">bool sortVisiblePatchesFrontToBack(const IndexIntervalDesc&amp; lhs, const IndexIntervalDesc&amp; rhs) {
	return true;
}

void TQT::computeVisiblePatches(const ICamera&amp; cam, std::vector&lt;IndexIntervalDesc&gt;&amp; patches) {
   for(int i=0; i &lt; 4; i++)
     tier1Quadrants[i]-&gt;traverse(cam, patches);
   std::sort(patches.begin(), patches.end(), sortVisiblePatchesFrontToBack); // Hier fliegt die assertion
}
</code></pre>
<p>Liefert mir beim std::sort eine Debug Assertion Failed! Expression: invalid operator&lt;</p>
<p>Was ist da der Fehler im Code?</p>
</blockquote>
<p>Du bekommst ja auch eine Laufzeitassertion und keinen Kompilerzeitfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605102</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Sun, 26 Oct 2008 14:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to invalid operator&amp;lt; on Sun, 26 Oct 2008 15:19:31 GMT]]></title><description><![CDATA[<p>Also, ich habe jetzt mein Prädikat ausgeschrieben:</p>
<pre><code class="language-cpp">bool sortVisiblePatchesFrontToBack(const IndexIntervalDesc&amp; lhs, const IndexIntervalDesc&amp; rhs) {
   return lhs.distanceToCamSq &lt; rhs.distanceToCamSq;
}
</code></pre>
<p>An computeVisiblePatches hat sich nichts geändert. Wenn ich das ganze jetzt im Debug Modus laufen lasse, gibts keine Probleme. Wenn ichs jedoch im Release Modus starte, bekomme ich eine &quot;Uhandled exception&quot;:</p>
<blockquote>
<p>Unhandled exception at 0x7779f217 in OR.exe: 0xC0000005: Access violation reading location 0xc679ffff.</p>
</blockquote>
<p>Ich habe im Call Stack nachgeschaut und die letzten paar Zeilen lauten:</p>
<blockquote>
<p>OR.exe!free(void * pBlock=0xc67a0000) Line 110 C</p>
<p>OR.exe!std::_Destroy_range&lt;IndexIntervalDesc,std::allocator&lt;IndexIntervalDesc&gt; &gt;(IndexIntervalDesc * _First=0x0759df98, IndexIntervalDesc * _Last=0x0759dfc4, std::allocator&lt;IndexIntervalDesc&gt; &amp; _Al={...}, std::_Nonscalar_ptr_iterator_tag __formal={...}) Line 235 + 0xf bytes C++</p>
<p>OR.exe!std::vector&lt;IndexIntervalDesc,std::allocator&lt;IndexIntervalDesc&gt; &gt;::_Insert_n(std::_Vector_iterator&lt;IndexIntervalDesc,std::allocator&lt;IndexIntervalDesc&gt; &gt; _Where={nodeID=&lt;Bad Ptr&gt; distanceToCamSq=1.9114282e+036 indexCount=470909263 ...}, unsigned int _Count=1, const IndexIntervalDesc &amp; _Val={...}) Line 1156 C++</p>
</blockquote>
<p>Weiß irgendwer was das bedeutet und wieso es ihn im Relase Modus zerlegt? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605123</guid><dc:creator><![CDATA[Sortiera]]></dc:creator><pubDate>Sun, 26 Oct 2008 15:19:31 GMT</pubDate></item></channel></rss>