<?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[&amp;quot;T&amp;quot; vs &amp;quot;const T &amp;amp;&amp;quot;]]></title><description><![CDATA[<p>hi,</p>
<p>bei einem blöden compiler würde man ja erwarten, dass die funktionsdeklaration</p>
<pre><code class="language-cpp">void f( const T &amp; argument );
</code></pre>
<p>effizienteren code liefert, als</p>
<pre><code class="language-cpp">void f( T argument);
</code></pre>
<p>, weil der compiler dann merkt, dass er einen zeiger benutzen kann, und nicht kopieren braucht. was ist aber bei einem optimierenden compiler? kann es sein, dass ihn das nur &quot;verwirrt&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/161022/quot-t-quot-vs-quot-const-t-amp-quot</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 16:51:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161022.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Oct 2006 13:26:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;T&amp;quot; vs &amp;quot;const T &amp;amp;&amp;quot; on Mon, 02 Oct 2006 13:26:03 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>bei einem blöden compiler würde man ja erwarten, dass die funktionsdeklaration</p>
<pre><code class="language-cpp">void f( const T &amp; argument );
</code></pre>
<p>effizienteren code liefert, als</p>
<pre><code class="language-cpp">void f( T argument);
</code></pre>
<p>, weil der compiler dann merkt, dass er einen zeiger benutzen kann, und nicht kopieren braucht. was ist aber bei einem optimierenden compiler? kann es sein, dass ihn das nur &quot;verwirrt&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1148012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1148012</guid><dc:creator><![CDATA[Crockett]]></dc:creator><pubDate>Mon, 02 Oct 2006 13:26:03 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;T&amp;quot; vs &amp;quot;const T &amp;amp;&amp;quot; on Mon, 02 Oct 2006 13:41:59 GMT]]></title><description><![CDATA[<p>Es sind Fälle denkbar, in denen der Compiler den die Kopie wegoptimieren kann. Dafür muß die Implementierung des Copy-Konstruktors aber zum compile-Zeitpunkt bekannt sein. Ist es in einer separaten Compile-Einheit, also in einer anderen cpp-Datei, weiß der Compiler nicht, ob der Copy-Konstruktor nicht irgendwelche gewollten Nebeneffekte hat. Daher muß der Compiler den Copy-Konstruktor aufrufen.</p>
<p>Der erste Fall ist da eindeutig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1148021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1148021</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Mon, 02 Oct 2006 13:41:59 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;T&amp;quot; vs &amp;quot;const T &amp;amp;&amp;quot; on Mon, 02 Oct 2006 13:58:16 GMT]]></title><description><![CDATA[<p>Crockett schrieb:</p>
<blockquote>
<p>...kann es sein, dass ihn das nur &quot;verwirrt&quot;?</p>
</blockquote>
<p>Wie sollte sowas einen Compiler &quot;verwirren&quot; ?<br />
Der Programmierer gibt maximal viele Angaben mit ... sollte eigentlich her einfacher für einen Compiler sein.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1148030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1148030</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 02 Oct 2006 13:58:16 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;T&amp;quot; vs &amp;quot;const T &amp;amp;&amp;quot; on Mon, 02 Oct 2006 14:24:10 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Wie sollte sowas einen Compiler &quot;verwirren&quot; ?<br />
Der Programmierer gibt maximal viele Angaben mit ... sollte eigentlich her einfacher für einen Compiler sein.</p>
</blockquote>
<p>naja, zum beispiel könnte ein bugfix für das behandeln von referenzübergaben aus dem jahr 1976 eine optimierung von solchen aufrufen verhindern. oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1148039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1148039</guid><dc:creator><![CDATA[Crockett]]></dc:creator><pubDate>Mon, 02 Oct 2006 14:24:10 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;T&amp;quot; vs &amp;quot;const T &amp;amp;&amp;quot; on Mon, 02 Oct 2006 14:48:50 GMT]]></title><description><![CDATA[<p>Crockett schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<p>Wie sollte sowas einen Compiler &quot;verwirren&quot; ?<br />
Der Programmierer gibt maximal viele Angaben mit ... sollte eigentlich her einfacher für einen Compiler sein.</p>
</blockquote>
<p>naja, zum beispiel könnte ein bugfix für das behandeln von referenzübergaben aus dem jahr 1976 eine optimierung von solchen aufrufen verhindern. oder so.</p>
</blockquote>
<p><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="😮"
    /><br />
Naja, es könnte einem auch ein Dachdecker unters Auto fallen.... <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>
<p>Ich halte es für höchst unwahrscheinlich, dass ein Compiler mit const-Referenzen mehr Probleme hat als mit &quot;call-by-value&quot;. Andersherum könnte ich mir vorstellen, dass ein übereifriger Optimizer fälschlicherweise eine temporäre Variable entfernt, wo er das nicht dürfte/sollte.<br />
Ich werde mich jedenfalls nicht vom &quot;const-reffen&quot; abbringen lassen. <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1148052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1148052</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 02 Oct 2006 14:48:50 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;T&amp;quot; vs &amp;quot;const T &amp;amp;&amp;quot; on Mon, 02 Oct 2006 16:25:27 GMT]]></title><description><![CDATA[<p>Ein Standardkonformer Compiler dürfte den by-value call eh nicht in einen by-reference call ändern by non-PODs. Denn er kann ja nicht wissen was im Copy-Ctor wirklich abläuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1148105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1148105</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Mon, 02 Oct 2006 16:25:27 GMT</pubDate></item></channel></rss>