<?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[Was wird hier eigentlich zurückgeben]]></title><description><![CDATA[<p>Wenn ich so ein Methode hier habe</p>
<pre><code class="language-cpp">std::vector&lt;T&gt; makeItSo(...)
...
return vec;
</code></pre>
<p>Was passiert dann eigentlich mit dem vec Objekt. Wird das dann kopiert? Und wenn ja, dann müsste ich ja eine Pointer zurückgeben, damit das nicht passiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277904/was-wird-hier-eigentlich-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 16:24:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277904.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Nov 2010 10:45:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was wird hier eigentlich zurückgeben on Fri, 26 Nov 2010 10:45:53 GMT]]></title><description><![CDATA[<p>Wenn ich so ein Methode hier habe</p>
<pre><code class="language-cpp">std::vector&lt;T&gt; makeItSo(...)
...
return vec;
</code></pre>
<p>Was passiert dann eigentlich mit dem vec Objekt. Wird das dann kopiert? Und wenn ja, dann müsste ich ja eine Pointer zurückgeben, damit das nicht passiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986036</guid><dc:creator><![CDATA[HändyÄndy]]></dc:creator><pubDate>Fri, 26 Nov 2010 10:45:53 GMT</pubDate></item><item><title><![CDATA[Reply to Was wird hier eigentlich zurückgeben on Fri, 26 Nov 2010 10:51:48 GMT]]></title><description><![CDATA[<p>Theoretisch müsste der vector kopiert werden. Praktisch gibts aber Tricks wie (Named) Return Value Optimization.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986039</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 26 Nov 2010 10:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Was wird hier eigentlich zurückgeben on Fri, 26 Nov 2010 10:52:59 GMT]]></title><description><![CDATA[<p>Wenn ein move ctor vorhanden ist, wird dieser verwendet. Bzw. wenn Optimierungen aktiviert sind, wird von den meisten Compilern diese Kopie wegoptimirt.<br />
<a href="http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/" rel="nofollow">http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986040</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Fri, 26 Nov 2010 10:52:59 GMT</pubDate></item><item><title><![CDATA[Reply to Was wird hier eigentlich zurückgeben on Fri, 26 Nov 2010 10:53:55 GMT]]></title><description><![CDATA[<p>-.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1986041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986041</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Fri, 26 Nov 2010 10:53:55 GMT</pubDate></item><item><title><![CDATA[Reply to Was wird hier eigentlich zurückgeben on Fri, 26 Nov 2010 18:32:57 GMT]]></title><description><![CDATA[<p>HändyÄndy schrieb:</p>
<blockquote>
<p>Und wenn ja, dann müsste ich ja eine Pointer zurückgeben, damit das nicht passiert?</p>
</blockquote>
<p>Nein, es sei denn, du willst den Benutzer zu dynamischer Speicherverwaltung zwingen, von der er nicht ohne Weiteres weiss, wie er den Speicher wieder freizugeben hat. Vermeide rohe besitzende Zeiger und manuelle Speicherverwaltung wo möglich.</p>
<p>Flexibel bezüglich Speicherverwaltung wäre ein Output-Parameter.</p>
<pre><code class="language-cpp">void Function(std::vector&lt;T&gt;&amp; out);
</code></pre>
<p>Flexibel bezüglich Container-Wahl wäre eine Iterator-Schnittstelle.</p>
<pre><code class="language-cpp">template &lt;typename OutputIterator&gt;
void Function(OutputIterator out);
</code></pre>
<p>Flexibel bezüglich Benutzung als temporäres Objekt wäre ein Smart-Pointer.</p>
<pre><code class="language-cpp">std::auto_ptr&lt; std::vector&lt;T&gt; &gt; Function();
</code></pre>
<p>Und naheliegend wäre Wertrückgabe. Ab und zu lohnt es sich, einfache Wege zu gehen.</p>
<pre><code class="language-cpp">std::vector&lt;T&gt; Function();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1986392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1986392</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 26 Nov 2010 18:32:57 GMT</pubDate></item></channel></rss>