<?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[Herb Sutters Quick Poll: Order of evaluation?]]></title><description><![CDATA[<p><a href="http://herbsutter.com/2014/12/01/a-quick-poll-about-order-of-evaluation/" rel="nofollow">http://herbsutter.com/2014/12/01/a-quick-poll-about-order-of-evaluation/</a></p>
<p>Welche Option nehmt ihr/hättet ihr genommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/329636/herb-sutters-quick-poll-order-of-evaluation</link><generator>RSS for Node</generator><lastBuildDate>Sat, 30 May 2026 18:04:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329636.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Dec 2014 21:26:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 21:26:37 GMT]]></title><description><![CDATA[<p><a href="http://herbsutter.com/2014/12/01/a-quick-poll-about-order-of-evaluation/" rel="nofollow">http://herbsutter.com/2014/12/01/a-quick-poll-about-order-of-evaluation/</a></p>
<p>Welche Option nehmt ihr/hättet ihr genommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430612</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 01 Dec 2014 21:26:37 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 21:30:05 GMT]]></title><description><![CDATA[<ol start="0">
<li></li>
</ol>
<p>Weil ich unter dem wahrscheinlich unsinnigen Glauben leide, dass Postinkrement nach dem Gesamtausdruck und nicht nach einem Teilausdruck ausgeführt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430615</guid><dc:creator><![CDATA[dachschaden]]></dc:creator><pubDate>Mon, 01 Dec 2014 21:30:05 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 21:36:37 GMT]]></title><description><![CDATA[<p>Hab 00 genommen, unter der Annahme, dass danach gefragt war, wie man das lösen sollte wenn man es mal angehen würde. Muss man aber nicht, ich finde es vollkommen in Ordnung, dass das undefiniert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430618</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 01 Dec 2014 21:36:37 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 21:50:56 GMT]]></title><description><![CDATA[<p>10<br />
Weil: Man muss nicht alles was in C++ crazy und freaky ist auch beibehalten.</p>
<p>EDIT: ARGH! Ich meine natürlich 10, nicht 01. Also v[0] == 1 halt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430620</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Dec 2014 21:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 22:03:28 GMT]]></title><description><![CDATA[<p>10 überzeugt vielleicht in diesem einfachen Beispiel, bei komplizierteren Sachen ist das auch nicht mehr so klar.<br />
Ein einfach zu merkende Regel würde einfach der Assoziativität der Operatoren folgen: damit 01</p>
<p>betrachte z.B.</p>
<pre><code class="language-cpp">v[i++]=v[i++]=v[i++];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2430622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430622</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 01 Dec 2014 22:03:28 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 22:20:17 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Ein einfach zu merkende Regel würde einfach der Assoziativität der Operatoren folgen: damit 01</p>
</blockquote>
<p>Soll mir auch Recht sein.</p>
<p>ps: Und ja, dein Argument ist gut. Hatte ich nicht weit genug gedacht.<br />
Und genaugenommen ist mir alles Recht ausser UB. Also unspecified oder die &quot;eins von den dreien&quot; Variante, alles OK, so lange nicht UB.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430624</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Dec 2014 22:20:17 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 22:16:31 GMT]]></title><description><![CDATA[<p>um der linken Seite etwas zuzuweisen, muß erst die rechte Seite ausgewertet sein, danach ist i = 1, dann wird zugewiesen, also v[1] = 1 und v[0] unspecified - das ist, was ich erwarten würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430625</guid><dc:creator><![CDATA[großbuchstaben]]></dc:creator><pubDate>Mon, 01 Dec 2014 22:16:31 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 22:18:36 GMT]]></title><description><![CDATA[<p>@großbuchstaben<br />
Wieso v[0] unspecified?<br />
Wurde ja mit 0 initialisiert.<br />
Wenn v[1] == 1 definiertes Verhalten sein soll, dann muss da mMn. auch v[0] == 0 garantiert sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430626</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Dec 2014 22:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 22:27:52 GMT]]></title><description><![CDATA[<blockquote>
<p>Ein einfach zu merkende Regel würde einfach der Assoziativität der Operatoren folgen: damit 01</p>
</blockquote>
<p>Das ist doch bei weitem die schwachsinnigste Option, oder nicht? Warum sollte <code>i++</code> zweimal 1 ergeben!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430628</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 01 Dec 2014 22:27:52 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 22:27:48 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>@großbuchstaben<br />
Wieso v[0] unspecified?<br />
Wurde ja mit 0 initialisiert.</p>
</blockquote>
<p>oops, hab die erste Zeile übersehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430629</guid><dc:creator><![CDATA[großbuchstaben]]></dc:creator><pubDate>Mon, 01 Dec 2014 22:27:48 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 22:38:17 GMT]]></title><description><![CDATA[<p>obwohl - ist die erste Zeile nicht ohnehin überflüssig? vector dürfte doch den Standard-Konstruktor von int rufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430630</guid><dc:creator><![CDATA[großbuchstaben]]></dc:creator><pubDate>Mon, 01 Dec 2014 22:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Mon, 01 Dec 2014 22:42:36 GMT]]></title><description><![CDATA[<p>Man erwartet intuitiv, dass die Argumente einer Funktion von links nach rechts ausgewertet werden.</p>
<p>Hier hat man</p>
<pre><code class="language-cpp">operator=(v.operator[](i.operator++(0)), i.operator++(0));
//                     Wert=0, i=1       Wert=1, i=2
</code></pre>
<p>Also Ausgabe &quot;10&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430631</guid><dc:creator><![CDATA[lefttoright]]></dc:creator><pubDate>Mon, 01 Dec 2014 22:42:36 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Tue, 02 Dec 2014 04:22:24 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Ein einfach zu merkende Regel würde einfach der Assoziativität der Operatoren folgen: damit 01</p>
</blockquote>
<p>Das ist doch bei weitem die schwachsinnigste Option, oder nicht? Warum sollte <code>i++</code> zweimal 1 ergeben!?</p>
</blockquote>
<p>Jo. <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/2430645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430645</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 02 Dec 2014 04:22:24 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Tue, 02 Dec 2014 04:26:32 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Hab 00 genommen, unter der Annahme, dass danach gefragt war, wie man das lösen sollte wenn man es mal angehen würde. Muss man aber nicht, ich finde es vollkommen in Ordnung, dass das undefiniert ist.</p>
</blockquote>
<p>Aus dem Grund habe ich für Festplatte formatieren gestimmt. Ich befürchte mehr Schaden als Nutzen, wenn man dieses Möchtegernproblem angeht und will kein Signal senden, dass ich mir ein anderes Verhalten wünschen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430646</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 02 Dec 2014 04:26:32 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Tue, 02 Dec 2014 05:17:26 GMT]]></title><description><![CDATA[<p>42</p>
<p>Nene, ich bin für 10, also dass die Inkrements von links nach rechts aufgelöst werden, da dies meiner Leserichtung entspricht, haben die Araber halt Pech^^</p>
<pre><code>v[0] = 1; // Ausgabe 10
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2430650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430650</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 02 Dec 2014 05:17:26 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Tue, 02 Dec 2014 07:41:08 GMT]]></title><description><![CDATA[<p>Undefiniert. Man denke nur mal an das ganze Chaos, das mitgebracht werden würde, wenn man den Postinkrement-Operator mal selbst implementiert; wer zwingt einem denn dazu, auch wirklich den ehemaligen Zustand zurückzugeben?</p>
<p>00 ist quatsch. Soll also erst zweimal (Reihenfolge?) der Rückgabewert von <code>i++</code> eingesetzt (wobei dann eine Kopie erstellt werden muss, weswegen ein Kopierkonstruktor vonnöten ist; Willkür) und dann noch ein drittes (wer rechnet schon damit?) <code>i++</code> berechnet werden?</p>
<p>10 ist für mich noch irgendwie verständlich. Dann muss aber auch die Auswertungsreihenfolge von Funktionen definiert werden (in <code>v[i++] = i++;</code> ist <code>v[i++]</code> ja auch nur Argument von <code>operator=</code> ). Und das verhindert afaik gewisse Compileroptimierungen (bin mir nicht mehr sicher, kein Gewähr).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430661</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Tue, 02 Dec 2014 07:41:08 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Tue, 02 Dec 2014 07:43:08 GMT]]></title><description><![CDATA[<p>Ich schließe mich der 10er Sekte an.<br />
IMO ist es auf den ersten Blick am natürlichsten, ich lesen den Source Code schließlich auch von links nach rechts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430662</guid><dc:creator><![CDATA[Singender Holzkübel]]></dc:creator><pubDate>Tue, 02 Dec 2014 07:43:08 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Tue, 02 Dec 2014 15:47:02 GMT]]></title><description><![CDATA[<p>Ich bin für 00.<br />
Die Assoziativität vom operator= ist right-to-left, also auch die Auswertung.</p>
<p>Und das Ganze bezieht sich vermutlich auf das Proposal, was die Auswertungsreihenfolge definieren will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430760</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Tue, 02 Dec 2014 15:47:02 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Tue, 02 Dec 2014 16:27:49 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Die Assoziativität vom operator= ist right-to-left, also auch die Auswertung.</p>
</blockquote>
<p>Was hat das miteinander zu tun?<br />
Bedeutet das nun etwa, dass du erwartest, dass bei</p>
<pre><code class="language-cpp">f()+g()*h();
</code></pre>
<p>zuerst g(), dann h() und dann f() ausgeführt wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430771</guid><dc:creator><![CDATA[lefttoright]]></dc:creator><pubDate>Tue, 02 Dec 2014 16:27:49 GMT</pubDate></item><item><title><![CDATA[Reply to Herb Sutters Quick Poll: Order of evaluation? on Tue, 02 Dec 2014 17:09:51 GMT]]></title><description><![CDATA[<p>lefttoright schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>Die Assoziativität vom operator= ist right-to-left, also auch die Auswertung.</p>
</blockquote>
<p>Was hat das miteinander zu tun?<br />
Bedeutet das nun etwa, dass du erwartest, dass bei</p>
<pre><code class="language-cpp">f()+g()*h();
</code></pre>
<p>zuerst g(), dann h() und dann f() ausgeführt wird?</p>
</blockquote>
<p>Ja</p>
<p>Später Edit um das zu erklären:<br />
Wenn man kopfrechnen muss:</p>
<pre><code>5 + 3 * 4
</code></pre>
<p>Rechnet man ja auch erst 3 * 4 und addiert dann 5. Dort ist es dasselbe.<br />
Es ist nur logisch, sich nach Priorität und Assoziativität auszurichten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2430772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2430772</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Tue, 02 Dec 2014 17:09:51 GMT</pubDate></item></channel></rss>