<?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[Kontrollstruktur unless?]]></title><description><![CDATA[<p>Hi!</p>
<p>Gibt es eigentlich auch die Kontrollstruktur unless( X ) in C++?<br />
Unless entspricht ja if( !Bedingung ).</p>
<p>Grüße, pktm</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211384/kontrollstruktur-unless</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 04:40:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211384.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Apr 2008 16:31:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 16:31:14 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Gibt es eigentlich auch die Kontrollstruktur unless( X ) in C++?<br />
Unless entspricht ja if( !Bedingung ).</p>
<p>Grüße, pktm</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496307</guid><dc:creator><![CDATA[pktm]]></dc:creator><pubDate>Tue, 22 Apr 2008 16:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 16:32:17 GMT]]></title><description><![CDATA[<p>Simple Frage simple Antwort: Nein <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/1496308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496308</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 22 Apr 2008 16:32:17 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 16:44:09 GMT]]></title><description><![CDATA[<p>pktm schrieb:</p>
<blockquote>
<p>Hi!</p>
<p>Gibt es eigentlich auch die Kontrollstruktur unless( X ) in C++?<br />
Unless entspricht ja if( !Bedingung ).</p>
</blockquote>
<p>warum? genauso möglich wäre eine unless schleife.</p>
<p>wie</p>
<pre><code class="language-cpp">do
{
...
}
unless(Bedingung)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1496315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496315</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 22 Apr 2008 16:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 16:52:32 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>pktm schrieb:</p>
<blockquote>
<p>Hi!</p>
<p>Gibt es eigentlich auch die Kontrollstruktur unless( X ) in C++?<br />
Unless entspricht ja if( !Bedingung ).</p>
</blockquote>
<p>warum? genauso möglich wäre eine unless schleife.</p>
<p>wie</p>
<pre><code class="language-cpp">do
{
...
}
unless(Bedingung)
</code></pre>
</blockquote>
<p>Seit wann gibts denn das in C++? Du meinst sicher:</p>
<pre><code class="language-cpp">do
{
...
}
while (!Bedingung)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1496321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496321</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 22 Apr 2008 16:52:32 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 17:01:34 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>warum? genauso möglich wäre eine unless schleife.</p>
</blockquote>
<p>Die würde man wohl until nennen.</p>
<p>In Common Lisp gibt es übrigens ein unless-Makro.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496325</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 22 Apr 2008 17:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 17:29:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#define unless(x) if(!(x))
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1496354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496354</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 22 Apr 2008 17:29:04 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 18:13:34 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#define unless(x) if(!(x))
</code></pre>
</blockquote>
<p>Wow, cool! Danke *freu*</p>
<p>Warum? Tja... *grins*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496386</guid><dc:creator><![CDATA[pktm]]></dc:creator><pubDate>Tue, 22 Apr 2008 18:13:34 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 18:45:08 GMT]]></title><description><![CDATA[<p>pktm schrieb:</p>
<blockquote>
<p>LordJaxom schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#define unless(x) if(!(x))
</code></pre>
</blockquote>
<p>Wow, cool! Danke *freu*</p>
<p>Warum? Tja... *grins*</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Man kann heute schon jeden mit simplen defines beeindrucken!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496417</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Tue, 22 Apr 2008 18:45:08 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 19:11:02 GMT]]></title><description><![CDATA[<p>D schrieb:</p>
<blockquote>
<p>pktm schrieb:</p>
<blockquote>
<p>LordJaxom schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#define unless(x) if(!(x))
</code></pre>
</blockquote>
<p>Wow, cool! Danke *freu*</p>
<p>Warum? Tja... *grins*</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Man kann heute schon jeden mit simplen defines beeindrucken!</p>
</blockquote>
<p>Das kommt halt immer darauf an, wie viel derjenige von der Sprache weis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496445</guid><dc:creator><![CDATA[pktm]]></dc:creator><pubDate>Tue, 22 Apr 2008 19:11:02 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 19:25:15 GMT]]></title><description><![CDATA[<p>und was wird aus do{} unless(...) ?<br />
-&gt; das define muss dann while(!...) heißen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496449</guid><dc:creator><![CDATA[wurst]]></dc:creator><pubDate>Tue, 22 Apr 2008 19:25:15 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 20:44:30 GMT]]></title><description><![CDATA[<p>wurst schrieb:</p>
<blockquote>
<p>und was wird aus do{} unless(...) ?<br />
-&gt; das define muss dann while(!...) heißen</p>
</blockquote>
<p>Du meinst wohl <em>until</em> <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>
<pre><code class="language-cpp">#define until(x) while(!(x))
</code></pre>
<p>Ich frag mich schon ernsthaft, ob die Namen <em>while</em> und <em>if</em> so schlimm sind, dass man sie durch eigene Kreationen ersetzen muss? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496501</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 22 Apr 2008 20:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Tue, 22 Apr 2008 23:47:58 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#define unless(x) if(!(x))
</code></pre>
</blockquote>
<p>Pfui. Sowas unsicheres wie Makros verwenden nur um ein if( not xxx ) durch was eigenes zu ersetzen? Das ist nicht nur wegen der üblichen Makro-Issues bedenklich (wenn irgendwo eine Variable oder Typ unless erwähnt wird, dann ersetzt das Makro das völlig ungeniert etc.) sondern ich würds fast als moralisch verwerflich bezeichnen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496540</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 22 Apr 2008 23:47:58 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 00:09:50 GMT]]></title><description><![CDATA[<p>until(x) über while(!x) zu definieren wäre falsch weil until und while logisch dieselbe aussage treffen, also beides sind synonyme</p>
<p>ein macro für unless zu machen kann unter umständen schon sinn machen wenn man es oft braucht da ifs mit anschließenden negationen für menschen allgemein schwer verständlich sind</p>
<p>&quot;we disagreed not to agree on not going to the store&quot; sehr einfacher satz eigentlich aber man braucht trotzdem nen bisschen um rauszufinden was eigentlich damit gemeint ist</p>
<p>allerdings würde ich trotzdem statt einem &quot;unless&quot; zu einem zusätzlichen boolean wert greifen der entsprechend benannt wird in solchen fällen, etwas wie</p>
<pre><code class="language-cpp">bool isRowEditable = !hasIllegalArgument | (loginRights &amp; RIGHT_EDIT) | !(elementFocus | elementIdle)

if(isRowEditable)...
</code></pre>
<p>nicht das das jetzt irgendwie sinn machen würde (die art wie ich den boolean da definiert habe) aber würde das in dem if drin stehen könnte man das ebenfalls schmeißen, solche ausdrücke sind furchtbar im programmcode und sollten möglichst abstrahiert werden</p>
<p>ich mache sowas im grunde auch schon für ganz einfache dinge wie, aus der luft gegriffen</p>
<pre><code class="language-cpp">bool canJump = !highGravity;
</code></pre>
<p>selbst so ein super einfacher ausdruck wie !highGravity bekommt gleich viel mehr information und verständlichkeit draufgepackt wenn man ihn für etwas konkretes benutzt (kann der charakter springen?) und dabei über einen extra boolean abstrahiert</p>
<p>also grundsätzlich spricht nichts gegen so ein unless macro (vllt eher einfach nur eines das eine negation vornimmt und nicht gleich ein if mit drin hat)</p>
<p>allerdings solltest du dir überlegen ob du nicht lieber mit booleans arbeiten möchtest da es eben &quot;mehr native ist&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496541</guid><dc:creator><![CDATA[Vevusio]]></dc:creator><pubDate>Wed, 23 Apr 2008 00:09:50 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 03:56:25 GMT]]></title><description><![CDATA[<p>Vevusio schrieb:</p>
<blockquote>
<p>until(x) über while(!x) zu definieren wäre falsch weil until und while logisch dieselbe aussage treffen, also beides sind synonyme</p>
</blockquote>
<p>talk about... etwas ist für menschen allgemein schwer verständlich <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="😕"
    /><br />
&quot;solange&quot; (while) und &quot;solange bis&quot; (until) sind nicht wirklich synonyme, solange bis du mir folgen kannst <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>
<blockquote>
<p>ein macro für unless zu machen kann unter umständen schon sinn machen wenn man es oft braucht da ifs mit anschließenden negationen für menschen allgemein schwer verständlich sind</p>
</blockquote>
<p>und was ist damit:</p>
<pre><code class="language-cpp">Hauptprogramm:
 Standardausgabe soll  &quot;Hello World&quot; anzeigen

Stop
</code></pre>
<p>das ist doch wohl um einiges verständlicher als ein typisches hello-world programm, und braucht nur</p>
<pre><code class="language-cpp">#define Hauptprogramm int main () { start
#define Standardausgabe std::cout
#define soll &lt;&lt;
#define anzeigen &lt;&lt; endl;
#define Stop }
</code></pre>
<p>wenn du C++ lernst, ist dir C++ verständlich. wenn du eine abfrage wie</p>
<pre><code class="language-cpp">if (canJump)
</code></pre>
<p>siehst, weißt du sofort, was gemeint ist. auch</p>
<pre><code class="language-cpp">if (!highGravity)
</code></pre>
<p>erklärt sich dir dann von selbst.</p>
<p>aber was</p>
<pre><code class="language-cpp">unless(highGravity)
</code></pre>
<p>bedeuten soll, das weißt du als gelernter C++ler einfach nicht bevor du dich nicht durch unmengen an dokumentation durchgeschlagen hast - *und* ausschließt, dass es irgendwo eine variable gibt, die &quot;unless&quot; heißt *und* sicherstellst, dass das macro überall, wo es verwendet wird, auch definiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496549</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Wed, 23 Apr 2008 03:56:25 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 06:49:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#define REPEAT  do {
#define UNTIL(x)   } while (!(x))
#define IF(x)    if (x)
#define UNLESS(x)    if (!(x))
#define THEN
#define BEGIN   {
#define END }
#define ASSIGN (x, y)  x = (y)

ASSIGN(x,3)
REPEAT
  IF (x &lt; 5) THEN
  BEGIN
  END
UNTIL (x &gt; 10)
</code></pre>
<p>In der Hoffnung, daß ich so einen Code nie lesen muß <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/1496597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496597</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 23 Apr 2008 06:49:59 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 08:45:49 GMT]]></title><description><![CDATA[<p>wo wäre dann der unterschied zwischen</p>
<pre><code class="language-cpp">while(couter &lt; MAX)
{
    counter++;
}
until(counter &lt; MAX)
{
    counter++;
}
</code></pre>
<p>natürlich heißt wort wörtlich until übersetzt &quot;bis&quot; und while &quot;solange&quot;, ich hab nicht gesagt es ist dasselbe wort sondern es sind logische synonyme</p>
<p>außerdem hab ich gesagt das unless macro wäre nur dann gerechtfertigt wenn man es wirklich oft benutzen muss aus irgend einem grund in einem programmbereich</p>
<p>#define int main{...<br />
#define ..</p>
<p>was du geschrieben hast, wir müssen anscheinend eine andere auffassung von oft haben weil ich ein &quot;int main(int argc...)&quot; nicht sonderlich oft in einem programm drin stehen habe</p>
<p>if(highJump) versteht man nicht als gelehrter c++ programmierer, das versteht man als egalwas programmierer und auch als nicht programmierer</p>
<p>es ging nicht darum die syntax zu verstehen sondern die logik, es möglichst einfach zu machen über den code zu lesen</p>
<p>und</p>
<pre><code class="language-cpp">if(!highGravity)
{
    //irgend ein jump code
}
</code></pre>
<p>muss nicht unter umständen verständlich sein, aber wenn man es auf if(canJump) runterbricht weiss man in dem if ist irgend eine jumping behandlung (ob da jetzt character.Jump() oder sonst was drinsteht was darauf auch hinweisen würde oder ein kommentar zusätzlich zu dem if, das ist wieder was anderes)</p>
<p>und auch wenn sich if(!highGravity) von selbst erklärt muss man kurz dort anhalten und &quot;äh wenn gravity nicht true ist geht er in das if hinein. hm hm&quot;, es ist nichts weltbewegendes aber macht den code ein klein wenig schwerer lesbar</p>
<p>und spätestens bei</p>
<p>if(!noCollisionFound &amp;&amp; !(highGravity || !staminaNotEmpty))</p>
<p>so nen ausdruck wenn man keine eindeutigen hinweise hat worauf man abfragt eigentlich zu knacken ist richtig scheiße, auch wenn er sich natürlich &quot;von selbst erklärt&quot;, ist ja einfache aussagenlogik, aber trotzdem wäre eine hilfsvariable nötig</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496652</guid><dc:creator><![CDATA[Vevusio]]></dc:creator><pubDate>Wed, 23 Apr 2008 08:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 09:23:16 GMT]]></title><description><![CDATA[<p>Vevusio schrieb:</p>
<blockquote>
<p>wo wäre dann der unterschied zwischen</p>
<pre><code class="language-cpp">while(couter &lt; MAX)
{
    counter++;
}
until(counter &lt; MAX)
{
    counter++;
}
</code></pre>
</blockquote>
<p>Die until Variante läuft, bis die Bedingung erreicht wird (bis counter &lt; MAX), also in Deinem Beispiel wird die Schleife gar nicht durchlaufen, sofern die Initialwert &lt; MAX war.<br />
Die while-Variante läuft, solange die Bedingung erfüllt ist, terminiert also erst, wenn counter &gt;= MAX wird.</p>
<p>PS:<br />
Makros zu erstellen um Befehle einer Programmiersprache umzubiegen ist das allerletzte. Die Syntax einer Programmiersprache ist begrenzt und im Falle von C/C++ standardisiert, und das aus gutem Grund.<br />
Redundante Befehle einzuführen, die sich einem mit der Sprache vertrauten Programmierer nicht erschließen ist absolut der falsche Weg. Und wer mit der Sprache nicht vertraut ist, wird es auch mit Pseudo-Konstrukten schwer haben. Das einzige, was man damit erreicht, ist, dass der Code für beide Seiten unverständlich wird.<br />
Es gibt eine Regel:<br />
So komplex wie nötig aber so einfach wie möglich.<br />
Und das bedeutet: Keine redundanten Befehle, schon gar nicht, wenn sie über Makros in die Sprache reingefrickelt werden müssen. C++ Programme sind aus Unkenntnis oder Dummheit vieler Programmierer eh schon schlimm genug (es gibt viele, die meinen, etwas C in Klassen gefüllt wäre gutes C++).<br />
Mal ganz davon abgesehen, dass die Makroexpansion bei allen Dingen die Seiteneffekte haben, katastrophale Folgen haben kann.<br />
Und ja, ich rege mich auf und steigere mich rein. Solche Ergüsse sind ja wohl das Letzte. Wer meint, eine Programmiersprache mit den &quot;guten eigenen Befehlen&quot; erweitern zu müssen, der sollte es lieber sein lassen, also das Programmieren, meine ich.<br />
Wer bestimmt Konstrukte, die eine Sprache nicht bietet, benötigt, der sollte sich nach einer anderen Sprache umsehen, wo diese Konstrukte zur Verfügung gestellt werden. Ada oder Pascal vielleicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496660</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 23 Apr 2008 09:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 09:29:29 GMT]]></title><description><![CDATA[<p>Vevusio schrieb:</p>
<blockquote>
<p>natürlich heißt wort wörtlich until übersetzt &quot;bis&quot; und while &quot;solange&quot;, ich hab nicht gesagt es ist dasselbe wort sondern es sind logische synonyme</p>
</blockquote>
<p>Wenn Du der Meinung bist, dann machst Du sicher bei folgendem Spiel mit:</p>
<p><strong>Du</strong> überweist <strong>mir</strong> jeden Monat 100 EUR, solange ich lebe. <strong>Ich</strong> überweise <strong>Dir</strong> auch jeden Monat 100 EUR, bis Du lebst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496683</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Wed, 23 Apr 2008 09:29:29 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 09:48:37 GMT]]></title><description><![CDATA[<p>Vevusio schrieb:</p>
<blockquote>
<p>selbst so ein super einfacher ausdruck wie !highGravity bekommt gleich viel mehr information und verständlichkeit draufgepackt wenn man ihn für etwas konkretes benutzt (kann der charakter springen?) und dabei über einen extra boolean abstrahiert</p>
</blockquote>
<p>*zustimm*</p>
<p>Aber generell hat doch niemand gesagt, dass er &quot;until&quot; oder &quot;unless&quot; ernsthaft benutzen will, oder? Und empfohlen wurde es imho auch nicht, ich verstehe die Aufregung darum nicht..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496704</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 23 Apr 2008 09:48:37 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 10:16:15 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Aber generell hat doch niemand gesagt, dass er &quot;until&quot; oder &quot;unless&quot; ernsthaft benutzen will, oder? Und empfohlen wurde es imho auch nicht, ich verstehe die Aufregung darum nicht..</p>
</blockquote>
<p>Der <strong>einzige</strong> Grund warum man <code>unless</code> nicht uneingeschränkt empfehlen kann ist, dass C/C++'s Makrosystem so für die Tonne ist das man <code>unless</code> nicht implementieren kann:</p>
<pre><code>&lt;condition&gt; := break_it(with, commas)
</code></pre>
<p>Leute die mit <code>unless</code> nicht klar kommen oder kategorisch gegen jeden Einsatz von Makros sind, sollten sich mal fragen wer hier zu dumm für irgendetwas ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496716</guid><dc:creator><![CDATA[&#x27;f]]></dc:creator><pubDate>Wed, 23 Apr 2008 10:16:15 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 11:10:24 GMT]]></title><description><![CDATA[<p>'f schrieb:</p>
<blockquote>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Aber generell hat doch niemand gesagt, dass er &quot;until&quot; oder &quot;unless&quot; ernsthaft benutzen will, oder? Und empfohlen wurde es imho auch nicht, ich verstehe die Aufregung darum nicht..</p>
</blockquote>
<p>Der <strong>einzige</strong> Grund warum man <code>unless</code> nicht uneingeschränkt empfehlen kann ist, dass C/C++'s Makrosystem so für die Tonne ist das man <code>unless</code> nicht implementieren kann:</p>
<pre><code>&lt;condition&gt; := break_it(with, commas)
</code></pre>
<p>Leute die mit <code>unless</code> nicht klar kommen oder kategorisch gegen jeden Einsatz von Makros sind, sollten sich mal fragen wer hier zu dumm für irgendetwas ist...</p>
</blockquote>
<p>Es gibt genügend Gründe dafür, dass in Sprachen, in denen es um hohe Betriebssicherheit der Software geht, komplett auf einen Präprozessor verzichtet wird. Ada ist hier wohl das beste Beispiel. Und in C++ wurden Templates und inline Funktionen bestimmt auch nur so aus Spaß eingeführt.<br />
Man man man, wenn ihr Euch eine eigene Programmiersprache bauen wollt, dann macht das von Grund auf, aber missbraucht nicht den C-Präprozessor dafür.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496718</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 23 Apr 2008 11:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 10:52:27 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Es gibt genügend Gründe dafür, dass ist Sprachen, in denen es um hohe Betriebssicherheit der Software geht, komplett auf einen Präprozessor verzichtet wird.</p>
</blockquote>
<p>Haha, hast du gerade C++ mit hoher Betriebssicherheit in Verbindung gebracht? <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="😃"
    /> <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>Tachyon schrieb:</p>
<blockquote>
<p>Und in C++ wurden Templates und inline Funktionen bestimmt auch nur so aus Spaß eingeführt.</p>
</blockquote>
<p>Templates und inline Funktionen decken alle Einsatzmöglichkeiten von Makros ab?</p>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Man man man, wenn ihr Euch eine eigene Programmiersprache bauen wollt, dann macht das von Grund auf, aber missbraucht nicht den C-Präprozessor dafür.</p>
</blockquote>
<p>Inwieweit unterscheidet sich <code>unless</code> denn von selber definierten Funktionen, Typen, etc.?</p>
<p>Btw, was wäre denn deiner Meinung nach <em>kein</em> Missbrauch des CPP?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496733</guid><dc:creator><![CDATA[&#x27;f]]></dc:creator><pubDate>Wed, 23 Apr 2008 10:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 10:53:53 GMT]]></title><description><![CDATA[<p>'f schrieb:</p>
<blockquote>
<p>Btw, was wäre denn deiner Meinung nach <em>kein</em> Missbrauch des CPP?</p>
</blockquote>
<p>selber definierte Funktionen, Typen, etc. Denn diese sind Sprachmittel und keine Präprozessor-Makros.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496734</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 23 Apr 2008 10:53:53 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 11:03:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18829">@pktm</a></p>
<p>Ich weiss nicht, obs schon gesagt wurde:<br />
Benutz so ein Konstrukt nicht um dir &quot;deine&quot; Programmiersprache zu basteln...</p>
<p>Das ganze extrem wird unleserlich.</p>
<p>Und den ganzen Makro Kram auch nur verwenden, wenn es nicht anders geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496745</guid><dc:creator><![CDATA[ihoernchen]]></dc:creator><pubDate>Wed, 23 Apr 2008 11:03:38 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 11:08:24 GMT]]></title><description><![CDATA[<p>'f schrieb:</p>
<blockquote>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Es gibt genügend Gründe dafür, dass ist Sprachen, in denen es um hohe Betriebssicherheit der Software geht, komplett auf einen Präprozessor verzichtet wird.</p>
</blockquote>
<p>Haha, hast du gerade C++ mit hoher Betriebssicherheit in Verbindung gebracht? <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="😃"
    /> <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>
</blockquote>
<p>Ich sagte, solche Sprachen verzeichten komplett auf einen Präprozessor und führte Ada an. Verzichtet C++ auf einen Präprozessor? Ich denke nicht. Lesen hilft verstehen.</p>
<p>'f schrieb:</p>
<blockquote>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Und in C++ wurden Templates und inline Funktionen bestimmt auch nur so aus Spaß eingeführt.</p>
</blockquote>
<p>Templates und inline Funktionen decken alle Einsatzmöglichkeiten von Makros ab?</p>
</blockquote>
<p>Unter C++ leider nicht, da z.B. Interfaces nicht über einen entsprechenden Mechanismus eingefügt werden, sondern durch textuelle Ersetzung (#include).<br />
Es ging aber auch nicht um <strong>alle</strong> Einsatzmöglichkeiten, sondern um das völlig überflüssige definieren von redundanten <em>pseudo Schlüsselwörtern</em>.</p>
<p>'f schrieb:</p>
<blockquote>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Man man man, wenn ihr Euch eine eigene Programmiersprache bauen wollt, dann macht das von Grund auf, aber missbraucht nicht den C-Präprozessor dafür.</p>
</blockquote>
<p>Inwieweit unterscheidet sich <code>unless</code> denn von selber definierten Funktionen, Typen, etc.?</p>
<p>Btw, was wäre denn deiner Meinung nach <em>kein</em> Missbrauch des CPP?</p>
</blockquote>
<p>Dir ist offensichtlich nichtmal der Unterschied zwischen Daten, Funktionen und Kontrollstrukturen bewusst.<br />
Unless wäre eine selbst definierte Kontrollstruktur, die mit textueller Ersetzung etwas nachbildet, dass sich ohne weiteres auch mit if direkt im Code, verständlich für jeden der die Sprache kennt, implementieren lässt.<br />
Man kann hier natürlich gerne als unregistrierter Unwissender auf irgendwelchen Leuten rumbashen, aber vielleicht solltest Du mal ein paar Bücher z.B. von Bjarne Stroustrup oder Scott Meyers lesen, bevor Du hier mit Deiner grandiosen Unwissenheit glänzt. Das Nachbilden von Kontrollstrukturen kommt in der Regel von irgendwelchen Leuten, die von einer anderen Programmiersprache her kommen, und meinen ein bestimmtes Schlüsselwort (aus der alten Sprache) wäre unbedingt erforderlich (in der Regel um irgendwelchen Code 1:1 portieren zu können) anstatt sich mit der Sprache auseinanderzusetzen und etwas vernünftiges zu generieren. Solche Leute sind leider hoffnungslose Anachronisten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496750</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 23 Apr 2008 11:08:24 GMT</pubDate></item><item><title><![CDATA[Reply to Kontrollstruktur unless? on Wed, 23 Apr 2008 11:24:48 GMT]]></title><description><![CDATA[<p>'f schrieb:</p>
<blockquote>
<p>Haha, hast du gerade C++ mit hoher Betriebssicherheit in Verbindung gebracht? <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="😃"
    /> <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>
</blockquote>
<p>Sauber geschriebener C++ Code hat auch eine hohe Betriebssicherheit. Und schlecht geschriebene Software mag von der ein oder anderen Sprache etwas abgefangen werden, wenn ich mir aber z.B. die Abstürze diverser Anwendungen ansehe hat Betriebssicherheit nichts, aber auch garnichts mit der Sprache zu tun (ob nun C++, VB, C#, Java, ...).</p>
<p>Ich hoffe dir ist überhaupt bewusst wieviel Software in C++ geschrieben wurden ist (und wie alltäglich man mit dieser in Einsatz kommt).</p>
<p>'f schrieb:</p>
<blockquote>
<p>Templates und inline Funktionen decken alle Einsatzmöglichkeiten von Makros ab?</p>
</blockquote>
<p>Nein, aber fast alle sinnvollen.</p>
<p>'f schrieb:</p>
<blockquote>
<p>Inwieweit unterscheidet sich <code>unless</code> denn von selber definierten Funktionen, Typen, etc.?</p>
</blockquote>
<p>Ich würde sagen es macht grundsätzlich keinen Sinn in einer Sprache weitere Befehle mit Makros nachzubauen, da man den Code schlechter lesbar macht. Manche mögen &quot;unless&quot; als sinnvoll erachten, ich halte es eher für &quot;useless&quot;, da man effektiv wie bei der Ungarischen Notation eine neue Sprache lernen muss.</p>
<p>Und der Vergleich mit Funktionen, eigenen Typen und Makros ist hinfällig: Makros sind kein direktes Sprachmittel und werden nicht so unterstützt wie ersteres. Mit eigenen Funktionen und eigenen Typen schafft man nicht noch nette Nebeneffekte wie das gerne von mir angeführte max-Makro (z.B. in windows.h) wenn man nichttriviale und auswertbare ausdrücke diesem Makro übergibt.</p>
<p>'f schrieb:</p>
<blockquote>
<p>Btw, was wäre denn deiner Meinung nach <em>kein</em> Missbrauch des CPP?</p>
</blockquote>
<p>Verwendung der C++ Sprachmittel, Vermeidung des Präprozessor wo er nicht (wie bei Include) unbedingt notwendig ist.</p>
<p>cu André<br />
P.S: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4465">@Tachyon</a> war keine Absicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496756</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 23 Apr 2008 11:24:48 GMT</pubDate></item></channel></rss>