<?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[mit bool rechnen - Schlechtes Design?]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>mit VC2010 ist das ohne weiteres Möglich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main() {
    cout &lt;&lt; (true - false) &lt;&lt; endl; // Ausgabe 1
    cout &lt;&lt; (false - true) &lt;&lt; endl; // Ausgabe -1
}
</code></pre>
<p>Jetzt meine Frage: Ist das auch so Standardkonform bzw. guter Stil?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265792/mit-bool-rechnen-schlechtes-design</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 19:27:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265792.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Apr 2010 18:19:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 18:20:07 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>mit VC2010 ist das ohne weiteres Möglich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main() {
    cout &lt;&lt; (true - false) &lt;&lt; endl; // Ausgabe 1
    cout &lt;&lt; (false - true) &lt;&lt; endl; // Ausgabe -1
}
</code></pre>
<p>Jetzt meine Frage: Ist das auch so Standardkonform bzw. guter Stil?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889636</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 28 Apr 2010 18:20:07 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 18:22:13 GMT]]></title><description><![CDATA[<p>daersc schrieb:</p>
<blockquote>
<p>[...]<br />
Jetzt meine Frage: Ist das auch so Standardkonform bzw. guter Stil?</p>
</blockquote>
<p>Warum schreibst du nicht einfach <code>1 - 0</code> und <code>0 - 1</code> .<br />
Ich verstehe den Sinn hinter <code>true - false</code> und <code>false - true</code> nicht.<br />
Natürlich gehen diese Operationen, doch ob sie Standardkonform sind mag ich zu bezweifeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889640</guid><dc:creator><![CDATA[Walnut_Burl]]></dc:creator><pubDate>Wed, 28 Apr 2010 18:22:13 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 18:26:27 GMT]]></title><description><![CDATA[<p>Ja, das Beispiel ist standardkonform, da <code>true</code> in arithmetischen Ausdrücken als <code>1</code> und <code>false</code> als <code>0</code> (beide vom Typ <code>int</code> ) interpretiert werden.</p>
<p>Guter Stil ist es nicht, es macht nämlich keinen Sinn. Wenn man rechnet, kann man Zahlen nehmen. Allerdings lassen sich gewisse Ausdrücke mit <code>bool</code> -Rechnereien kompakter schreiben, weil man z.B. ohne <code>if</code> auskommt. Das sind dann aber komplexere Ausdrücke vom Typ <code>bool</code> (oft Ergebnisse von logischen oder relationalen Operatoren) und keine Literale.</p>
<p>Ob das dann guter Stil ist, sieht jeder ein wenig anders. Ich selbst habe grundsätzlich nichts dagegen, sofern man es halbwegs entziffern kann oder ein vernünftiger Kommentar da steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889642</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 28 Apr 2010 18:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 18:37:09 GMT]]></title><description><![CDATA[<p>Ich denke, das fällt unter &quot;integral promotion&quot;. Bevor + ausgerechnet wird, werden die boolschen Ausdrücke erst zu int-Werten konvertiert. Demnach liefert der Ausdruck false-true den Wert -1 und ist vom Typ int.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889648</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 28 Apr 2010 18:37:09 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 18:40:32 GMT]]></title><description><![CDATA[<p>Das ganze frage ich deshalb: Ich habe eine Klasse die eine Membervariable <code>m_state</code> und eine Vergleichsfunktion <code>compare()</code> enthält. Die Vergleichsfunktion funktioniert dann so:</p>
<pre><code class="language-cpp">int MyClass::compare(const MyClass&amp; rhs) const {
    return m_state - rhs.m_state;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1889651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889651</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 28 Apr 2010 18:40:32 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 18:56:32 GMT]]></title><description><![CDATA[<p>Komisches compare <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889656</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Wed, 28 Apr 2010 18:56:32 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 18:58:34 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>Komisches compare <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="😃"
    /></p>
</blockquote>
<p>Ist ja nur ein Teil - natürlich wird noch nach anderen Kriterien verglichen...<br />
Oder meinst du etwas anderes? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889659</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 28 Apr 2010 18:58:34 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 19:01:53 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>Komisches compare <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="😃"
    /></p>
</blockquote>
<p>Ganz normales Compare. Dreiwertige Rückgabe mitr &lt;0, ==0, &gt;0 ist nicht so unüblich. Siehe strcmp. Ein wenig weiter weg von der STL, aber C ist ja auch was Schönes.</p>
<p>daersc schrieb:</p>
<blockquote>
<p>Ist ja nur ein Teil - natürlich wird noch nach anderen Kriterien verglichen...</p>
</blockquote>
<p>Das macht mir jetzt ein wenig Angst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889660</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 28 Apr 2010 19:01:53 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 19:22:44 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>daersc schrieb:</p>
<blockquote>
<p>Ist ja nur ein Teil - natürlich wird noch nach anderen Kriterien verglichen...</p>
</blockquote>
<p>Das macht mir jetzt ein wenig Angst.</p>
</blockquote>
<p>Es ist so, dass zuerst nach dem &quot;vorrangigen&quot; Kriterium verglichen wird. Wenn eine Unterscheidung bereits möglich ist, ist das der Rückgabewert. Wenn nicht, wird das nächste Kriterium herangezogen. Wenn alle Vergleiche kein Ergebnis bringen, liefert die Funktion 0 zurück.</p>
<p>volkard schrieb:</p>
<blockquote>
<p>Ein wenig weiter weg von der STL, aber C ist ja auch was Schönes.</p>
</blockquote>
<p>Ist das nicht sinnvoll, das die &lt; und == Operatoren nur noch diese Funktion aufrufen müssen? (Die übrigen werden von Boost.Operators erstellt...<br />
Im Übrigen: <a href="http://www.cplusplus.com/reference/string/string/compare/" rel="nofollow">http://www.cplusplus.com/reference/string/string/compare/</a> Weit weg von der STL???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889669</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 28 Apr 2010 19:22:44 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 19:52:11 GMT]]></title><description><![CDATA[<p>Wie ist das mit der Geschwindigkeit, wenn Du den kleinen op&lt; implementierst, indem du die große compare verwendest?<br />
Sinnvoll ist es wohl, wenn es leicht zu lesen ist und keine Zusatzkosten gegenüber asm hat. Vermutlich solltest Du die ops &lt; und == explizit selber bauen und die anderen kannst Du ja gerne boosteln lassen. DIe beiden erst zusammenzufassen, um sie dann wieder mit if auseinanderzuklamüsern, riecht nach Java, UML, Struktogrammen, Refactoring-Menus und so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889682</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 28 Apr 2010 19:52:11 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 20:51:00 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Ganz normales Compare.</p>
</blockquote>
<p>Das natürlich, das Compare von .NET macht das gleiche, aber nicht mit bool, sondern das gibt dann jenachdem -1, 0 oder 1 zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889709</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Wed, 28 Apr 2010 20:51:00 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 20:56:36 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Ganz normales Compare.</p>
</blockquote>
<p>Das natürlich, das Compare von .NET macht das gleiche, aber nicht mit bool, sondern das gibt dann jenachdem -1, 0 oder 1 zurück.</p>
</blockquote>
<p>Tut dieses Compare hier ja auch.<br />
Ich sehe hier nichts komisches, alles vollkommen normal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889712</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 28 Apr 2010 20:56:36 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 21:05:53 GMT]]></title><description><![CDATA[<p>Naja für mich ist es nunmal unüblich mit bool zu rechnen, auch wenn es geht <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889716</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Wed, 28 Apr 2010 21:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 21:17:42 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>Naja für mich ist es nunmal unüblich mit bool zu rechnen, auch wenn es geht <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="😃"
    /></p>
</blockquote>
<p>ist fuer dich dann auch ein</p>
<pre><code class="language-cpp">int strcmp(char const* a, char const* b) {
  while(*a &amp;&amp; *a++==*b++)
    ;
  return *a-*b;
}
</code></pre>
<p>komisch?</p>
<p>Ich wuerde halt ein:</p>
<pre><code class="language-cpp">if(a&lt;b) return -1;
else if(a==b) return 0;
else return 1;
</code></pre>
<p>komisch finden <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/1889720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889720</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 28 Apr 2010 21:17:42 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Wed, 28 Apr 2010 21:47:27 GMT]]></title><description><![CDATA[<p>Ja finde ich persönlich nicht gerade ansprechend, aber bei solch einem Thema vertritt nunmal jeder seine eigene Ansicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889732</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Wed, 28 Apr 2010 21:47:27 GMT</pubDate></item><item><title><![CDATA[Reply to mit bool rechnen - Schlechtes Design? on Thu, 29 Apr 2010 06:10:03 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Vermutlich solltest Du die ops &lt; und == explizit selber bauen und die anderen kannst Du ja gerne boosteln lassen. DIe beiden erst zusammenzufassen, um sie dann wieder mit if auseinanderzuklamüsern, riecht nach Java, UML, Struktogrammen, Refactoring-Menus und so.</p>
</blockquote>
<p>Sobald die Objekte nicht gleich sind, bricht die Funktion in jedem Fall ab...<br />
Und was ist mit der Vermeidung der Codeduplizierung? Immerhin sehen beide Op's fast gleich aus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889787</guid><dc:creator><![CDATA[daersc _nicht eingeloggt]]></dc:creator><pubDate>Thu, 29 Apr 2010 06:10:03 GMT</pubDate></item></channel></rss>