<?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[Operatoren überladen - nur als Bonus?]]></title><description><![CDATA[<p>Hallo.<br />
Ich habe mal eine Frage...<br />
Sollte man überladene Operatoren nur als &quot;Bonus&quot; zur Verfügung stellen, oder diese als festen Bestandteil annehmen?</p>
<pre><code class="language-cpp">class X
{
public:
    bool operator==(const X &amp;other)
    {
        // Implementation hier, oder extra Funktion Compare() erstellen + aufrufen?
        return this-&gt;Compare(X);
    }
    bool Compare(const X &amp;other)
    {
        return (this-&gt;y != X.y);
    }

private:
    int y;
};
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265268/operatoren-überladen-nur-als-bonus</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 05:39:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265268.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Apr 2010 13:37:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Tue, 20 Apr 2010 13:42:19 GMT]]></title><description><![CDATA[<p>Hallo.<br />
Ich habe mal eine Frage...<br />
Sollte man überladene Operatoren nur als &quot;Bonus&quot; zur Verfügung stellen, oder diese als festen Bestandteil annehmen?</p>
<pre><code class="language-cpp">class X
{
public:
    bool operator==(const X &amp;other)
    {
        // Implementation hier, oder extra Funktion Compare() erstellen + aufrufen?
        return this-&gt;Compare(X);
    }
    bool Compare(const X &amp;other)
    {
        return (this-&gt;y != X.y);
    }

private:
    int y;
};
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885727</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Tue, 20 Apr 2010 13:42:19 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Tue, 20 Apr 2010 13:39:20 GMT]]></title><description><![CDATA[<p>Warum hast du die Compare Funktion?<br />
Was bringt sie dir, was dir der operator== (den du btw nicht ganz korrekt implementiert hast) nicht bietet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885729</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 20 Apr 2010 13:39:20 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Tue, 20 Apr 2010 13:42:10 GMT]]></title><description><![CDATA[<p>Ja, deshalb frage ich ja nach. Sollte ich einen <code>operator==</code> und eine Compare-Funktion anbieten, oder nur <code>operator==</code> ?</p>
<p>Edit: Sorry, ich meine natürlich <code>operator==</code> in diesem Beispiel!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885730</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Tue, 20 Apr 2010 13:42:10 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Tue, 20 Apr 2010 13:43:29 GMT]]></title><description><![CDATA[<ol>
<li>Vorsicht vor dem Unterschied zwischen op= und op==!</li>
<li>Man kann die Operatoren über eine Klassenmethode implementieren, wenn man dadurch irgendwelche Vorteile hat. Ein Beispiel wäre hierfür, wenn man einen Freien Operator implementiert und dazu eine Klassenmethode verwendet, die Zugriff auf private Variablen der Klasse hat. Das geht auch, indem man den op zum friend macht. Was schöner ist, ist Geschmackssache, das Thema hatten wir des öfteren schon.</li>
<li><a href="http://magazin.c-plusplus.net/artikel/%DCberladung%20von%20Operatoren%20in%20CPlusPlus%20%28Teil%201%29" rel="nofollow">http://magazin.c-plusplus.net/artikel/�berladung von Operatoren in CPlusPlus (Teil 1)</a> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1885732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885732</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 20 Apr 2010 13:43:29 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Tue, 20 Apr 2010 14:21:48 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Ich habe mal eine Frage...<br />
Sollte man überladene Operatoren nur als &quot;Bonus&quot; zur Verfügung stellen, oder diese als festen Bestandteil annehmen?</p>
</blockquote>
<p>Bonus meiden! Die Schnittstelle soll klein bleiben. Also nicht zwei Funktionen bieten, die genau das selbe machen.<br />
Bei Compare weiß kein Schwein, was rauskommt. Bei &lt; ist alles sonnenklar. Also &lt; nehmen, spart immer wieder einen Guck ins Handbuch.<br />
Aber immer davon abweichen, wenn Du einen guten Grund hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885757</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 20 Apr 2010 14:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 13:53:07 GMT]]></title><description><![CDATA[<p>Eine ähnliche Diskussion (allerdings noch mit <code>friend</code> ) hatten wir <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1866634.html#1866634" rel="nofollow">kürzlich</a>. Wie du siehst, gibt es verschiedene Meinungen, sobald eine <code>Compare</code> -Funktion nicht genau das Gleiche tut wie ein Operator. In deinem Fall ist aber unbestritten, dass <code>Compare()</code> nichts bringt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886250</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 21 Apr 2010 13:53:07 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 13:59:37 GMT]]></title><description><![CDATA[<p>Was aber bisher onch nicht angeschnitten wurde, ist die Verwendung deiner Klasse in Funktionen und Klassen der STL. Da kann es sein, dass bestimmte Operatoren Pflicht sind. Ein std::find funktioniert nicht wirklich ohne operator==.<br />
Ein std::sort ebensowenig ohne operator&lt;.<br />
Wenn deine Klasse also in solchen Situationen verwendet werden soll, ist ein Operator kein Bonus sondern ein Muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886256</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 21 Apr 2010 13:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 14:02:47 GMT]]></title><description><![CDATA[<p>l'abra d'or schrieb:</p>
<blockquote>
<p>Wenn deine Klasse also in solchen Situationen verwendet werden soll, ist ein Operator kein Bonus sondern ein Muss.</p>
</blockquote>
<p>&quot;Muss&quot; würde ich nicht sagen. Es besteht schliesslich in sehr vielen Fällen die Möglichkeit, Funktionszeiger oder -objekte zu verwenden. Zum Beispiel bei <code>std::find_if()</code> oder der <code>std::sort()</code> -Überladung mit Prädikat.</p>
<p>Oft ist das sogar sinnvoller, und zwar wenn keine intuitve Konvention für die Operatoren existiert. Also bevor man <code>operator&lt;</code> für eine Vektorklasse überlädt, sollte man vielleicht über Funktoren/Funktionszeiger nachdenken. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886259</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 21 Apr 2010 14:02:47 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 14:17:06 GMT]]></title><description><![CDATA[<p>Darum hab ich auch geschrieben &quot;verwendet werden soll&quot;, es also geplant ist. Dann kann man davon ausgehen, dass ein Vergleich Sinn macht ;).<br />
Da ist es unhandlich, immer ein Prädikat mitzugeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886266</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 21 Apr 2010 14:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 14:21:40 GMT]]></title><description><![CDATA[<p>Okay.<br />
Danke, aber wie ist es, wenn ich Pointerobjekte habe?<br />
Beispiel:</p>
<pre><code class="language-cpp">X *y = new X;

// if (y == y2)
// funktioniert nicht, da operator== nicht aufgerufen wird
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886268</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Wed, 21 Apr 2010 14:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 14:30:49 GMT]]></title><description><![CDATA[<p>l'abra d'or schrieb:</p>
<blockquote>
<p>Darum hab ich auch geschrieben &quot;verwendet werden soll&quot;, es also geplant ist. Dann kann man davon ausgehen, dass ein Vergleich Sinn macht ;).</p>
</blockquote>
<p>Okay, ich hab den Satz so verstanden, dass eine Klasse <em>unter anderem</em> in den beschriebenen Situationen verwendet wird. Und lieber einmal ein Operator zu wenig, dafür eine böse Überraschung gespart. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Letztes Mal fand ich übrigens ein schönes <a href="http://www.ogre3d.org/docs/api/html/classOgre_1_1Vector3.html" rel="nofollow">Beispiel</a> dafür, wie Operatorüberladung nicht aussehen sollte. Der dortige <code>operator&lt;</code> taugt nicht mal zur Sortierung in Containern.</p>
<p>theliquidwave schrieb:</p>
<blockquote>
<p>Danke, aber wie ist es, wenn ich Pointerobjekte habe?</p>
</blockquote>
<p>Dann dereferenzierst du sie, wie sonst immer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886271</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 21 Apr 2010 14:30:49 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 14:39:37 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Letztes Mal fand ich übrigens ein schönes <a href="http://www.ogre3d.org/docs/api/html/classOgre_1_1Vector3.html" rel="nofollow">Beispiel</a> dafür, wie Operatorüberladung nicht aussehen sollte. Der dortige <code>operator&lt;</code> taugt nicht mal zur Sortierung in Containern.</p>
</blockquote>
<p>Interessant. Hab gleich mal bei Qt nachgeschaut, und die lassen den operator&lt; bei QVector3D komplett weg <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886279</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 21 Apr 2010 14:39:37 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 15:59:59 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Der dortige <code>operator&lt;</code> taugt nicht mal zur Sortierung in Containern.</p>
</blockquote>
<p>Warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886328</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 21 Apr 2010 15:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 16:07:42 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Der dortige <code>operator&lt;</code> taugt nicht mal zur Sortierung in Containern.</p>
</blockquote>
<p>Warum?</p>
</blockquote>
<p>ich glaub, nexus hat nicht die theoretische seite betrachtet, sondern die praktische^^<br />
es gilt eben für fast jeden vektor x, y: <code>!(x&lt;y) &amp;&amp; !(y&lt;x)</code></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886333</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 21 Apr 2010 16:07:42 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 16:12:11 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Der dortige <code>operator&lt;</code> taugt nicht mal zur Sortierung in Containern.</p>
</blockquote>
<p>Warum?</p>
</blockquote>
<p>Man kann diese Version sicherlich als Sortierkriterium im Container verwenden. Aber zusammen mit operator&gt;, operator==, operator!= ergibt sich ein recht komisches Bild, viele Objekte fallen durch das Raster. Und wenn ich eine Möglichkeit biete, Objekte zu vergleichen und zu sortieren, sollte am Ende eine eindeutige Reihenfolge entstehen, und das ist mit dieser Implementierung nicht gegeben.</p>
<p>Außerdem ist die Beschränkung auf die Koordinaten beim Vergleich nicht unbedingt überall angebracht. Ich würde die Vektoren gerne nach Länge sortieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Wenn ein Sortierkriterium nicht eindeutig gegeben ist, sollte man mMn. auf einen Vergleichsoperator verzichten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886337</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 21 Apr 2010 16:12:11 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 17:53:23 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Der dortige <code>operator&lt;</code> taugt nicht mal zur Sortierung in Containern.</p>
</blockquote>
<p>Warum?</p>
</blockquote>
<p>Schau mal das Sortierkriterium an:</p>
<pre><code class="language-cpp">inline bool operator &lt; ( const Vector3&amp; rhs ) const
{
    if( x &lt; rhs.x &amp;&amp; y &lt; rhs.y &amp;&amp; z &lt; rhs.z )
        return true;
    return false;
}
</code></pre>
<p>Nehmen wir zwei Vektoren a = (1,2,4) und b = (2,2,3).</p>
<p><code>a &lt; b</code> ergibt <code>false</code> .<br />
<code>b &lt; a</code> ergibt <code>false</code> .</p>
<p>Folglich sind die beiden Vektoren bezüglich des Sortierkriteriums äquivalent. Es besteht kein <em>Strict Weak Ordering</em>. Das macht sich bei assoziativen Containern wie <code>std::set</code> , die ihre Elemente automatisch sortieren, nicht gut. Hier käme man nicht mal dazu, beide Vektoren einzufügen, obwohl sie unterschiedlich sind.</p>
<p>Überhaupt finde ich die gezeigte <code>Ogre::Vector3</code> -Klasse vom Design und der Implementierung her ziemlich schlecht, aber das ist wieder ein anderes Thema.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886380</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 21 Apr 2010 17:53:23 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 20:57:01 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Folglich sind die beiden Vektoren bezüglich des Sortierkriteriums äquivalent.</p>
</blockquote>
<p>richtig.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Es besteht kein <em>Strict Weak Ordering</em>.</p>
</blockquote>
<p>Kann ich nicht erkennen.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Das macht sich bei assoziativen Containern wie <code>std::set</code> , die ihre Elemente automatisch sortieren, nicht gut. Hier käme man nicht mal dazu, beide Vektoren einzufügen, obwohl sie unterschiedlich sind.</p>
</blockquote>
<p>Zirkelschluss. Äquivalenz wird in diesem Zusammenhang ja gerade erst durch das Sortierkriterium induziert. Die Vektoren sind eben nicht unterschiedlich in diesem Sinne.</p>
<p>Ob das konkrete Kriterium besonders sinnvoll ist, kann dahingestellt bleiben. Jedenfalls würde ich nicht von vornherein ausschließen, dass es Anwendungen für diese Form gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886455</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 21 Apr 2010 20:57:01 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 21:25:40 GMT]]></title><description><![CDATA[<p>Hinzu kommt aber, dass sich die Implementierung inkonsistent bzgl. op &gt; und op == verhält. Und gilt die Äquivalenz zweier Vektoren a und b nun, wenn a == b oder wenn !(a &lt; b) &amp;&amp; !(b &lt; a) ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886467</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Wed, 21 Apr 2010 21:25:40 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren überladen - nur als Bonus? on Wed, 21 Apr 2010 21:37:34 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Es besteht kein <em>Strict Weak Ordering</em>.</p>
</blockquote>
<p>Kann ich nicht erkennen.</p>
</blockquote>
<p>Nicht? Laut Wikipedia muss negative Transitivität für &lt; gelten.</p>
<p>Gegenbeispiel:</p>
<pre><code class="language-cpp">Vector3 a(1,2,3);
Vector3 b(2,2,4);
Vector3 c(4,4,4);

a &lt; b; // false
b &lt; c; // false
a &lt; c; // true, müsste aber false sein
</code></pre>
<p>camper schrieb:</p>
<blockquote>
<p>Zirkelschluss. Äquivalenz wird in diesem Zusammenhang ja gerade erst durch das Sortierkriterium induziert. Die Vektoren sind eben nicht unterschiedlich in diesem Sinne.</p>
</blockquote>
<p>Nein, kein Zirkelschluss. Ich bezog &quot;unterschiedlich&quot; auf Gleichheit, nicht Äquivalenz – Gleichheit im Sinne von <code>operator==</code> , welche auch dem natürlichen Verständnis von Vektorgleichheit entspricht. Ich weiss schon, was du meinst, aber so eine Implementierung macht die Vektorklasse für assoziative Container nicht nur nutzlos, sondern gefährlich. Mehr dazu im unteren Abschnitt.</p>
<p>camper schrieb:</p>
<blockquote>
<p>Ob das konkrete Kriterium besonders sinnvoll ist, kann dahingestellt bleiben. Jedenfalls würde ich nicht von vornherein ausschließen, dass es Anwendungen für diese Form gibt.</p>
</blockquote>
<p>Meinst du? Ich kann es mir schwer vorstellen. Als Anwender erlebt man wahrscheinlich in den meisten Fällen ein blaues Wunder. Ich kann nicht für alle sprechen, aber gerade gestern habe ich relativ lange an einem Fehler gesucht, der von einem falschen Sortierkriterium in <strong>meinem</strong> Code ausgegangen ist. Wenn man dann hingegen eine fertige Bibliothek anwendet, vertraut man dieser meist ein Stück und sucht den Fehler noch viel eher bei sich. Sowas ist extrem mühsam, das kommt schon fast einem Bug nahe. Und ipsecs Feststellung macht die Situation nicht besser.</p>
<p>Gerade bei Operatoren sollten Entwickler meiner Meinung nach überaus vorsichtig sein. Wenn etwas nicht eindeutig ist, sollte man eher auf benannte Funktionen ausweichen. Es wäre ja kein Problem gewesen, eventuelle Anwendungsfälle mit einer Funktion <code>ElementwiseLess()</code> oder ähnlich zu berücksichtigen, um alle glücklich zu machen (auch wenn ich sowas nie in eine Vektorklasse packen würde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886472</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 21 Apr 2010 21:37:34 GMT</pubDate></item></channel></rss>