<?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[auto referenz]]></title><description><![CDATA[<pre><code>std::array&lt;int, 5&gt; &amp;foo();
auto arr = foo();
</code></pre>
<p>Warum ist arr ein &quot;<em>std::array&lt;int, 5&gt;</em>&quot; und kein &quot;<em>std::array&lt;int, 5&gt; &amp;</em>&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319167/auto-referenz</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 11:49:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319167.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Aug 2013 22:45:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to auto referenz on Thu, 08 Aug 2013 22:45:03 GMT]]></title><description><![CDATA[<pre><code>std::array&lt;int, 5&gt; &amp;foo();
auto arr = foo();
</code></pre>
<p>Warum ist arr ein &quot;<em>std::array&lt;int, 5&gt;</em>&quot; und kein &quot;<em>std::array&lt;int, 5&gt; &amp;</em>&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344558</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Thu, 08 Aug 2013 22:45:03 GMT</pubDate></item><item><title><![CDATA[Reply to auto referenz on Thu, 08 Aug 2013 22:59:03 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<pre><code>std::array&lt;int, 5&gt; &amp;foo();
auto arr = foo();
</code></pre>
<p>Warum ist arr ein &quot;<em>std::array&lt;int, 5&gt;</em>&quot; und kein &quot;<em>std::array&lt;int, 5&gt; &amp;</em>&quot;?</p>
</blockquote>
<p>Die Referenz bezieht sich auf den return Wert. Und den return Wert kopierst du dann. Ist doch praktisch das Gleiche wie:</p>
<pre><code>int x; // return x
int&amp; rx=x; // Der return Wert: Referenz auf x
int arr = rx; // Den return Wert kopieren
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2344559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344559</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 08 Aug 2013 22:59:03 GMT</pubDate></item><item><title><![CDATA[Reply to auto referenz on Thu, 08 Aug 2013 23:11:20 GMT]]></title><description><![CDATA[<p>Mal ein Schritt weitergedacht: <code>auto</code> kann nie ein Referenztyp sein, weil nach dem Bezeichner immer ein <code>=</code> steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344561</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 08 Aug 2013 23:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to auto referenz on Thu, 08 Aug 2013 23:16:44 GMT]]></title><description><![CDATA[<p>Als Ergänzung:<br />
Wer auto in range-for nutzt, sollte die referenz nicht vergessen, sonst erzeugt jede Iteration eine Kopie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344562</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Thu, 08 Aug 2013 23:16:44 GMT</pubDate></item><item><title><![CDATA[Reply to auto referenz on Thu, 08 Aug 2013 23:26:05 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Mal ein Schritt weitergedacht: <code>auto</code> kann nie ein Referenztyp sein, weil nach dem Bezeichner immer ein <code>=</code> steht.</p>
</blockquote>
<p>Irgendwie ist der Satz komisch :D. Was ich sagen wollte. <code>=</code> bedeutet ja immer Kopie. Wenn du keine Kopie willst, musst DU das ausdrücklich sagen, indem du ein <code>&amp;</code> anhängst... War ja schon immer so, und hat sich auch bei <code>auto</code> nicht geändert.</p>
<p>phlox81 schrieb:</p>
<blockquote>
<p>Wer auto in range-for nutzt, sollte die referenz nicht vergessen, sonst erzeugt jede Iteration eine Kopie.</p>
</blockquote>
<p>Auch bei built-in Typen? Oder gilt hier dieselbe Regel wie bei Funktionsparametern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344564</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 08 Aug 2013 23:26:05 GMT</pubDate></item><item><title><![CDATA[Reply to auto referenz on Fri, 09 Aug 2013 07:06:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Auch bei built-in Typen? Oder gilt hier dieselbe Regel wie bei Funktionsparametern?</p>
</blockquote>
<p>Ja, der Typ wird deduziert wie Template-Argumente bei einem Funktionstemplate-Aufruf.<br />
Das bedeutet, qualifizierst du auto nicht mit einem &amp;, dann gibt es immer eine <em>lvalue-to-rvalue conversion</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344595</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 09 Aug 2013 07:06:13 GMT</pubDate></item></channel></rss>