<?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[if Bedingung und&#x2F;oder Bedingung - Problem]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich lerne gerade Visual C++ (bringe ich mir selber bei). Um das zu erlernen verändere ich den vorgegebenen Code gern.</p>
<p>Mein Problem ist nun folgendes:</p>
<p>Der normale Code lautet:</p>
<pre><code class="language-cpp">if Bedingung1 || Bedingung2 TuWas;
</code></pre>
<p>Bedeutet ja wenn eine der beiden Bedingungen wahr ist wird TuWas gemacht. In einem speziellen Fall sind leider beide WAHR, daher sollte TuWas NICHT ausgeführt werden.</p>
<p>Nun meine Frage:</p>
<p>Gibt es eine Möglichkeit &amp;&amp; und/oder || umzukehren?<br />
Sollte dann statt 'und' bzw. 'oder' heißen: 'und nicht' bzw. 'oder nicht'!</p>
<p>Es wäre schön, wenn jemand da Rat wüßte</p>
<p>Danke<br />
ein Neuling</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293469/if-bedingung-und-oder-bedingung-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 07:24:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293469.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Oct 2011 18:19:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 18:19:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich lerne gerade Visual C++ (bringe ich mir selber bei). Um das zu erlernen verändere ich den vorgegebenen Code gern.</p>
<p>Mein Problem ist nun folgendes:</p>
<p>Der normale Code lautet:</p>
<pre><code class="language-cpp">if Bedingung1 || Bedingung2 TuWas;
</code></pre>
<p>Bedeutet ja wenn eine der beiden Bedingungen wahr ist wird TuWas gemacht. In einem speziellen Fall sind leider beide WAHR, daher sollte TuWas NICHT ausgeführt werden.</p>
<p>Nun meine Frage:</p>
<p>Gibt es eine Möglichkeit &amp;&amp; und/oder || umzukehren?<br />
Sollte dann statt 'und' bzw. 'oder' heißen: 'und nicht' bzw. 'oder nicht'!</p>
<p>Es wäre schön, wenn jemand da Rat wüßte</p>
<p>Danke<br />
ein Neuling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126821</guid><dc:creator><![CDATA[Neuling2011]]></dc:creator><pubDate>Mon, 03 Oct 2011 18:19:11 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 18:24:17 GMT]]></title><description><![CDATA[<p>Ja, es gibt noch den Operator ! (nicht) und ^ (etnweder oder), den du noch verwenden kannst:</p>
<pre><code class="language-cpp">if(bed1 || !bed2) tu_was;//ist erfüllt, wenn bed1 wahr oder bed2 NICHT wahr ist
if(bed1 ^ bed2) tu_was; //ist erfüllt, wenn genau eine Bedingungen bed1 oder bed2 wahr ist, aber nicht beide
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2126823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126823</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 03 Oct 2011 18:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 18:30:15 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if(bed1 ^ bed2) tu_was; //ist erfüllt, wenn genau eine Bedingungen bed1 oder bed2 wahr ist, aber nicht beide
</code></pre>
</blockquote>
<p>Bist du sicher, dass das bitwise exclusive or hier das Richtige macht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126825</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 03 Oct 2011 18:30:15 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 18:35:43 GMT]]></title><description><![CDATA[<p>Super</p>
<p>ich danke Euch sehr für die schnelle Antwort!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126827</guid><dc:creator><![CDATA[Neuling2011]]></dc:creator><pubDate>Mon, 03 Oct 2011 18:35:43 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 18:35:52 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if(bed1 ^ bed2) tu_was; //ist erfüllt, wenn genau eine Bedingungen bed1 oder bed2 wahr ist, aber nicht beide
</code></pre>
</blockquote>
<p>Bist du sicher, dass das bitwise exclusive or hier das Richtige macht?</p>
</blockquote>
<p>Solange du mit booleschen Werten hantierst, ja. Einen logischen XOR gibt es afair nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126828</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 03 Oct 2011 18:35:52 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 18:48:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int* a;
bool b;
...
if(a ^ b) ...
</code></pre>
<p>wäre afaik schon problematisch.</p>
<pre><code class="language-cpp">if(a != b)
</code></pre>
<p>sollte dagegen funktionieren. Es ist nur nicht unbedingt auf den ersten Blick klar, was gemeint ist ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126829</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 03 Oct 2011 18:48:36 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 19:02:31 GMT]]></title><description><![CDATA[<p>Ich hab mal</p>
<pre><code class="language-cpp">if(!a ^ !b)
</code></pre>
<p>gesehen, allerdings in C-Code. In C++ ist das insofern etwas haariger, als dass man unter Umständen mit dem Safe-Bool-Idiom rechnen muss. Ich würde mir wahrscheinlich eine kleine Funktionsvorlage dafür schreiben:</p>
<pre><code class="language-cpp">template&lt;typename T, typename U&gt;
bool logical_xor(T lhs, U rhs) {
  return static_cast&lt;bool&gt;(lhs || (!lhs &amp;&amp; rhs));
}
</code></pre>
<p>...damit sollte man für alle Eventualitäten abgesichert sein, in denen logisches XOR überhaupt Sinn ergibt (keine Garantien dafür, was passiert, wenn man da Boost.Spirit-Parser reinschmeißt). Mit C++11 wäre</p>
<pre><code class="language-cpp">template&lt;typename T, typename U&gt;
auto logical_xor(T lhs, U rhs) -&gt; decltype(lhs || (!lhs &amp;&amp; rhs)) {
  return lhs || (!lhs &amp;&amp; rhs);
}
</code></pre>
<p>eine Überlegung wert (ich denke da in Richtung Tribools).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126834</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 03 Oct 2011 19:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 19:04:41 GMT]]></title><description><![CDATA[<p>Entschuldigung, das muss natürlich jeweils</p>
<pre><code class="language-cpp">(lhs &amp;&amp; !rhs) || (!lhs &amp;&amp; rhs)
</code></pre>
<p>sein. Dummer Flüchtigkeitsfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126837</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 03 Oct 2011 19:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 19:22:55 GMT]]></title><description><![CDATA[<p>&quot;trailing-return-type&quot; scheint hier ja wirklich beliebt zu sein, aber wäre in diesem Fall das &quot;alte&quot;</p>
<pre><code class="language-cpp">bool logical_xor(T lhs, U rhs) {...}
</code></pre>
<p>nicht übersichtlicher?<br />
Oder übersehe ich einfach etwas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126841</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 03 Oct 2011 19:22:55 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 19:25:46 GMT]]></title><description><![CDATA[<p>Wenn da &quot;-&gt; bool&quot; hinter stünde, gäbe ich dir recht. Der Trick ist ja, dass der Rückgabetyp aus den Parametertypen errechnet wird; für den Fall halt, dass man etwas anderes als ein nackter bool gebraucht wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126842</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 03 Oct 2011 19:25:46 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 19:29:40 GMT]]></title><description><![CDATA[<p>Hallo seldon,</p>
<p>kam grad selbst drauf, daß man &amp;&amp; usw. ja auch überladen kann.<br />
Somit ist die Frage hinfällig.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126846</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 03 Oct 2011 19:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 20:33:04 GMT]]></title><description><![CDATA[<p>Caligulaminus schrieb:</p>
<blockquote>
<p>Hallo seldon,</p>
<p>kam grad selbst drauf, daß man &amp;&amp; usw. ja auch überladen kann.<br />
Somit ist die Frage hinfällig.</p>
<p>Gruß</p>
</blockquote>
<p>Das sollte man sehr sparsam tun.<br />
Weil der Leser meist erwartet, daß &amp;&amp; und || usw die short-circuit-Auswertung haben. Der Überladene Operatore ist aber nur noch eine normale Funktion und kann den Trick nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126866</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 03 Oct 2011 20:33:04 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 20:47:09 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Das sollte man sehr sparsam tun.<br />
Weil der Leser meist erwartet, daß &amp;&amp; und || usw die short-circuit-Auswertung haben. Der Überladene Operatore ist aber nur noch eine normale Funktion und kann den Trick nicht.</p>
</blockquote>
<p>Hallo volkard,</p>
<p>nicht, daß ich soetwas befürworten wollte(Gott bewahre).<br />
Es beantwortet nur meine ursprüngliche Frage.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126869</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 03 Oct 2011 20:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 21:32:15 GMT]]></title><description><![CDATA[<p>Caligulaminus schrieb:</p>
<blockquote>
<p>Hallo volkard,<br />
nicht, daß ich soetwas befürworten wollte(Gott bewahre).</p>
</blockquote>
<p>Fein. Die Warnung war auch nicht konkret für diesen Thread, sondern irgendwie automatisch, die gehört dazu, wenn man &amp;&amp; oder || überlädt.</p>
<p>Caligulaminus schrieb:</p>
<blockquote>
<p>Es beantwortet nur meine ursprüngliche Frage.</p>
</blockquote>
<p>Die ist mir noch ein Rätsel, muß ich zugeben.</p>
<p>Umkehren von &amp;&amp;? Was kann damit gemeint sein?</p>
<h1>statt (Traumfrau)<br />
if(körbchengröße&gt;='D' &amp;&amp; gehalt&gt;=45000) heirate();<br />
ein (Monster)<br />
if(!(körbchengröße&gt;='D' &amp;&amp; !(gehalt&gt;=45000)) heirate_nicht();<br />
?<br />
Das wäre zu einfach. Dazu einen neuen Operator zu bauen, kann ich gar nicht nachvollziehen.<br />
Es läßt sich übrigens weiterführen zu (Monster)<br />
if(!(körbchengröße&gt;='D' &amp;&amp; !(gehalt&gt;=45000)) heirate_nicht();</h1>
<p>if(körbchengröße&lt;'D' &amp;&amp; gehalt&lt;45000)) heirate_nicht();</p>
<h1>Oder war gemeint<br />
statt (Traumfrau)<br />
if(körbchengröße&gt;='D' &amp;&amp; gehalt&gt;=45000) heirate();<br />
ein (nicht Traumfrau)<br />
if(!(körbchengröße&gt;='D' &amp;&amp; gehalt&gt;=45000)) verlobe();<br />
das läßt sich gut mit <a href="http://de.wikipedia.org/wiki/De_Morgan%E2%80%99sche_Gesetze" rel="nofollow">deMorgan</a> kleinhacken zu<br />
if(!(körbchengröße&gt;='D') || !(gehalt&gt;=45000)) verlobe();</h1>
<p>if(körbchengröße&lt;'D' || gehalt&lt;45000) verlobe();</p>
<p>Das war auch wieder nicht konkret für diesen Thread. Ich weiß ja nicht, was Du vor hast. Ich kann nur für mich sagen, daß ich nie solchen Bedarf hatte, weil deMorgan schon erheblich rockt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126878</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 03 Oct 2011 21:32:15 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 21:48:10 GMT]]></title><description><![CDATA[<p><strong><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a></strong></p>
<p>Und da war es wieder: mein immer wiederkehrendes Problem mit der Kommunikation in Foren dieser Machart.</p>
<p>Es sollte eigentlich kein Rätsel sein. Meine erwähnte &quot;ursprüngliche Frage&quot; lautete:</p>
<p>Caligulaminus schrieb:</p>
<blockquote>
<p>&quot;trailing-return-type&quot; scheint hier ja wirklich beliebt zu sein, aber wäre in diesem Fall das &quot;alte&quot;</p>
<pre><code class="language-cpp">bool logical_xor(T lhs, U rhs) {...}
</code></pre>
<p>nicht übersichtlicher?<br />
Oder übersehe ich einfach etwas?</p>
</blockquote>
<p>Innerhalb der nächsten Minute sickerte bei mir ein, daß man die erwähnten Operatoren ja auch überladen kann und damit der höhere Schreibaufwand von seldons</p>
<pre><code class="language-cpp">auto logical_xor(T lhs, U rhs) -&gt; decltype(lhs || (!lhs &amp;&amp; rhs)){...}
</code></pre>
<p>an dem ich mich ursprünglich stieß, durchaus gerechtfertigt (schlicht besser/richtiger) ist.</p>
<p>Ich hoffe, ich konnte das Rätsel auflösen.</p>
<p>besten Gruß</p>
<p>C.</p>
<p>~Edit: Interpunktion~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126882</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 03 Oct 2011 21:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 21:48:16 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>: Also C ist doch auch gut. D ist schon fast zu groß, findest du nicht?<br />
Selbstverständlich reden wir hier von Programmiersprachen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126883</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 03 Oct 2011 21:48:16 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 21:52:32 GMT]]></title><description><![CDATA[<p><strong><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/25894">@Caligulaminus</a></strong></p>
<p>lol, das kann ich fast spiegeln.</p>
<p>Und da war es wieder: mein immer wiederkehrendes Problem mit der Kommunikation in Foren dieser Machart.</p>
<p>Ich hatte Dich (Caligulaminus) mit dem Threadersteller (Neuling2011) gleichgesetzt, weil Ihr beide gute Fragen gestellt hattet. Garbage in, garbage out, Sorry. Bin erheitert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126884</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 03 Oct 2011 21:52:32 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 21:54:40 GMT]]></title><description><![CDATA[<p>Und ich glühe vor Zorn <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Spiegel nur, wir leiden alle unter dem selben Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126886</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 03 Oct 2011 21:54:40 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 21:59:14 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p><strong><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/25894">@Caligulaminus</a></strong><br />
[...]weil Ihr beide gute Fragen gestellt hattet.</p>
</blockquote>
<p>Und danke für die Blumen.</p>
<p>~Edit: Interpunktion(schon wieder)~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126887</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 03 Oct 2011 21:59:14 GMT</pubDate></item><item><title><![CDATA[Reply to if Bedingung und&#x2F;oder Bedingung - Problem on Mon, 03 Oct 2011 22:01:12 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>: Also C ist doch auch gut. D ist schon fast zu groß, findest du nicht?</p>
</blockquote>
<p>Es ist nur ein Exempel zur Verdeutlichung der formalen Codeumformungen; das wird als Übertreibung klarer.<br />
D ist mir ein bißchen zu groß, in beiden Welten, da stimme ich Dir zu. Schönes Wortspiel haste da gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2126888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2126888</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 03 Oct 2011 22:01:12 GMT</pubDate></item></channel></rss>