<?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[Wird hier kopiert oder nicht?]]></title><description><![CDATA[<p>Hi,<br />
wenn ich folgenden Code habe, wird in Zeile 16 dann das ganze Objekt kopiert oder nicht?</p>
<pre><code>struct hugeStruct
{
    // a lot of data
}

hugeStruct foo()
{
    hugeStruct* bar = new hugeStruct;
    // fill bar
    return *bar;
}

int main()
{
    // do something
    hugeStruct&amp; otherBar = foo();
    // do something
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/332798/wird-hier-kopiert-oder-nicht</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 12:03:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332798.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 May 2015 14:28:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wird hier kopiert oder nicht? on Fri, 22 May 2015 14:28:03 GMT]]></title><description><![CDATA[<p>Hi,<br />
wenn ich folgenden Code habe, wird in Zeile 16 dann das ganze Objekt kopiert oder nicht?</p>
<pre><code>struct hugeStruct
{
    // a lot of data
}

hugeStruct foo()
{
    hugeStruct* bar = new hugeStruct;
    // fill bar
    return *bar;
}

int main()
{
    // do something
    hugeStruct&amp; otherBar = foo();
    // do something
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2454441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454441</guid><dc:creator><![CDATA[CCBC]]></dc:creator><pubDate>Fri, 22 May 2015 14:28:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wird hier kopiert oder nicht? on Fri, 22 May 2015 14:33:11 GMT]]></title><description><![CDATA[<p>Ja, es wird kopiert. Und so wie es da steht, leakt es noch dazu. Ausserdem sollte es eine Warnung bzw. Error geben, weil du einen R-Value an eine non-const Referenz binden möchtest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454442</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 22 May 2015 14:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to Wird hier kopiert oder nicht? on Fri, 22 May 2015 15:49:15 GMT]]></title><description><![CDATA[<p>Wo ist die Referenz denn konstant?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454453</guid><dc:creator><![CDATA[a]]></dc:creator><pubDate>Fri, 22 May 2015 15:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wird hier kopiert oder nicht? on Fri, 22 May 2015 16:22:27 GMT]]></title><description><![CDATA[<blockquote>
<p>weil du einen R-Value an eine <strong>non</strong>-const Referenz</p>
</blockquote>
<p>deine ist eben nicht const - und wenn Sie const ist kannst du es kompilieren - aber hast dennoch ein Memoryleak durch das new</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454456</guid><dc:creator><![CDATA[Gast3]]></dc:creator><pubDate>Fri, 22 May 2015 16:22:27 GMT</pubDate></item><item><title><![CDATA[Reply to Wird hier kopiert oder nicht? on Fri, 22 May 2015 16:39:15 GMT]]></title><description><![CDATA[<p>theta schrieb:</p>
<blockquote>
<p>Ausserdem sollte es eine Warnung bzw. Error geben, weil du einen R-Value an eine non-const Referenz binden möchtest.</p>
</blockquote>
<p>Tatsächlich erlaubt Visual Studio sowas als nicht standardkonforme Erweiterung. Man muss schon auf Warning Level 4 stellen damit man wenigstens ne Warnung kriegt. Mach es einfach so und werd glücklich:</p>
<pre><code>hugeStruct foo()
{
    hugeStruct bar;
    // fill bar
    return bar;
}

int main()
{
    // do something
    hugeStruct otherBar = foo();
    // do something
}
</code></pre>
<p>Wenn der Compiler nicht total steinzeitmäßig ist gibts hier Return Value Optimization.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454458</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Fri, 22 May 2015 16:39:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wird hier kopiert oder nicht? on Sat, 23 May 2015 09:06:48 GMT]]></title><description><![CDATA[<p>sebi707 schrieb:</p>
<blockquote>
<p>theta schrieb:</p>
<blockquote>
<p>Ausserdem sollte es eine Warnung bzw. Error geben, weil du einen R-Value an eine non-const Referenz binden möchtest.</p>
</blockquote>
<p>Tatsächlich erlaubt Visual Studio sowas als nicht standardkonforme Erweiterung. Man muss schon auf Warning Level 4 stellen damit man wenigstens ne Warnung kriegt.</p>
</blockquote>
<p>War mir schon bewusst, ich war zu faul um noch mehr zu schreiben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454496</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sat, 23 May 2015 09:06:48 GMT</pubDate></item></channel></rss>