<?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[Größe von Rückgabewerten]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>mal ne kurze Frage. Ich dachte eigentlich immer dass ein Rückgabewert nicht größer als die Größe eines CPU-Registers sein sollte. Der std::shared_ptr besteht z.B. aus zwei Pointern also bei x86 aus 8 Byte, bei x64 sogar aus 16. Ist das nicht eher ungünstig den dann zurück zu geben? Oder sollte man eine Referenz zurück geben?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/292085/größe-von-rückgabewerten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 06:40:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292085.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Sep 2011 14:17:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Größe von Rückgabewerten on Fri, 02 Sep 2011 14:17:47 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>mal ne kurze Frage. Ich dachte eigentlich immer dass ein Rückgabewert nicht größer als die Größe eines CPU-Registers sein sollte. Der std::shared_ptr besteht z.B. aus zwei Pointern also bei x86 aus 8 Byte, bei x64 sogar aus 16. Ist das nicht eher ungünstig den dann zurück zu geben? Oder sollte man eine Referenz zurück geben?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2113959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2113959</guid><dc:creator><![CDATA[1700]]></dc:creator><pubDate>Fri, 02 Sep 2011 14:17:47 GMT</pubDate></item><item><title><![CDATA[Reply to Größe von Rückgabewerten on Fri, 02 Sep 2011 14:49:20 GMT]]></title><description><![CDATA[<p>Du kannst da meistens auf den Compiler vertrauen, der dir alles wegoptimieren wird. Es gab da mal einen interessanten Artikel zu std::string als Rückgabewert, den ich aber gerade nicht finden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2113989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2113989</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 02 Sep 2011 14:49:20 GMT</pubDate></item><item><title><![CDATA[Reply to Größe von Rückgabewerten on Fri, 02 Sep 2011 15:14:10 GMT]]></title><description><![CDATA[<p>Beim Kopieren des shared_ptr passiert sogar noch mehr, denn der Referenzzähler muss inkrementiert werden. Genau deshalb ist es aber i.d.R. nicht sehr sinnvoll mit Referenzen auf shared_ptr zu hantieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2114008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114008</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Fri, 02 Sep 2011 15:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to Größe von Rückgabewerten on Fri, 02 Sep 2011 15:25:28 GMT]]></title><description><![CDATA[<p>1700 schrieb:</p>
<blockquote>
<p>mal ne kurze Frage. [...] Ist das nicht eher ungünstig den dann zurück zu geben?</p>
</blockquote>
<p>Nein.</p>
<p>1700 schrieb:</p>
<blockquote>
<p>Oder sollte man eine Referenz zurück geben?</p>
</blockquote>
<p>Worauf? Jedenfalls nicht auf eine gleich-nicht-mehr-existierende lokale Variable!</p>
<p>Ich weiß nicht, wie es die anderen Compiler machen. Aber der GCC unterscheidet zwischen &quot;einfachen Typen&quot; und &quot;komplizierten Typen&quot;. Kompliziert ist ein Typ, wenn man ein Objekt nicht mehr einfach per memcpy kopieren kann. In so einem Fall wird der Funktion nur die Adresse übergeben, wo sie das Ergebnis zu konstruieren hat. Das ermöglicht dann auch die RVO/NRVO-Optimierungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2114009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114009</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 02 Sep 2011 15:25:28 GMT</pubDate></item></channel></rss>