<?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[std::atomic]]></title><description><![CDATA[<p>Huhu,</p>
<p>Welchen Grund hat es, dass Operatoren für atomics nicht überladen wurden, sondern dafür freie Funktionen verwendet werden müssen?</p>
<p>Grüße,<br />
PI</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/294130/std-atomic</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 01:04:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/294130.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Oct 2011 14:54:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 14:54:14 GMT]]></title><description><![CDATA[<p>Huhu,</p>
<p>Welchen Grund hat es, dass Operatoren für atomics nicht überladen wurden, sondern dafür freie Funktionen verwendet werden müssen?</p>
<p>Grüße,<br />
PI</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132878</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 14:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 15:21:42 GMT]]></title><description><![CDATA[<p>Welche Operatoren? Unter <a href="http://www.stdthread.co.uk/doc/headers/atomic/atomic.html" rel="nofollow">http://www.stdthread.co.uk/doc/headers/atomic/atomic.html</a> finde ich keine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132885</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 18 Oct 2011 15:21:42 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 15:27:04 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Huhu,</p>
<p>Welchen Grund hat es, dass Operatoren für atomics nicht überladen wurden, sondern dafür freie Funktionen verwendet werden müssen?</p>
<p>Grüße,<br />
PI</p>
</blockquote>
<p>Verstehe die Frage nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132887</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 18 Oct 2011 15:27:04 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 15:41:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::atomic&lt;int&gt; i(0);
std::atomic_fetch_add(&amp;i, 42); // warum nicht i += 42;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2132889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132889</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 15:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 15:45:59 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::atomic&lt;int&gt; i(0);
std::atomic_fetch_add(&amp;i, 42); // warum nicht i += 42;
</code></pre>
</blockquote>
<p>gibt es doch.</p>
<p>n3290 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template &lt;&gt; struct atomic&lt;integral&gt; {
...
operator integral() const volatile noexcept;
operator integral() const noexcept;
...
atomic() noexcept = default;
constexpr atomic(integral) noexcept;
atomic(const atomic&amp;) = delete;
atomic&amp; operator=(const atomic&amp;) = delete;
atomic&amp; operator=(const atomic&amp;) volatile = delete;
integral operator=(integral) volatile noexcept;
integral operator=(integral) noexcept;
integral operator++(int) volatile noexcept;
integral operator++(int) noexcept;
integral operator--(int) volatile noexcept;
integral operator--(int) noexcept;
integral operator++() volatile noexcept;
integral operator++() noexcept;
integral operator--() volatile noexcept;
integral operator--() noexcept;
integral operator+=(integral) volatile noexcept;
integral operator+=(integral) noexcept;
integral operator-=(integral) volatile noexcept;
integral operator-=(integral) noexcept;
integral operator&amp;=(integral) volatile noexcept;
integral operator&amp;=(integral) noexcept;
integral operator|=(integral) volatile noexcept;
integral operator|=(integral) noexcept;
integral operator^=(integral) volatile noexcept;
integral operator^=(integral) noexcept;
};
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2132892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132892</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 18 Oct 2011 15:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 15:49:08 GMT]]></title><description><![CDATA[<p>Schon mal <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html#Introduction" rel="nofollow">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html#Introduction</a> gelesen? .. Zu spaet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132895</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 18 Oct 2011 15:49:08 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 15:53:58 GMT]]></title><description><![CDATA[<p>Das kommt davon, wenn man Header liest, und sich wundert, warum man die Operatoren nicht findet. Funktioniert, danke.</p>
<p>Gibts einen Grund, warum</p>
<pre><code class="language-cpp">std::atomic&lt;T&gt; a = t;
</code></pre>
<p>nicht funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132898</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 15:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:02:21 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Das kommt davon, wenn man Header liest, und sich wundert, warum man die Operatoren nicht findet. Funktioniert, danke.</p>
<p>Gibts einen Grund, warum</p>
<pre><code class="language-cpp">std::atomic&lt;T&gt; a = t;
</code></pre>
<p>nicht funktioniert?</p>
</blockquote>
<p>Ich würde es bevorzugen, wenn du deine Fragen anders stellst. Ein Warum macht erst Sinn, nachdem 1. eine Beobachtung gemacht wurde, 2. diese Beobachtung mit einer bestimmten Erwartung verglichen wird; ist also der 3. Schritt, falls zwischen 1. und 2. eine Diskrepanz auftritt. Stellst du gleich die Warum-Frage, kann zu 1. und 2. nichts mehr gesagt werden; übrigens ein Grund der jedenfalls bei mir sehr schnell dazu führt, dass ich die Frage ganz ignoriere (sofern das Problem dort zu verorten ist).</p>
<p>Hier liegt vermutlich ein Problem mit 1. vor. Je nachdem, entweder hast du das Ganze mit einem Compiler versucht - dann ist möglicherweise dort die Unterstützung nicht ausreichend. Oder du hast den Standard gelesen, in diesem Fall wohl nicht intensiv genug. Jedenfalls ist die betreffende Überladung (zufällig) bereits in meinem vorherigen Beitrag dabei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132904</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:12:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::atomic&lt;int&gt; i = 42;
</code></pre>
<blockquote>
<p>../main.cpp:57:23: error: use of deleted function 'std::atomic&lt;int&gt;::atomic(const std::atomic&lt;int&gt;&amp;)'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2132911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132911</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:12:27 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:44:57 GMT]]></title><description><![CDATA[<p>Steht doch eh alles schon in der Fehlermeldung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132926</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:45:36 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::atomic&lt;int&gt; i = 42;
</code></pre>
<blockquote>
<p>../main.cpp:57:23: error: use of deleted function 'std::atomic&lt;int&gt;::atomic(const std::atomic&lt;int&gt;&amp;)'</p>
</blockquote>
</blockquote>
<p>Ja, das ist korrekt.</p>
<p>PS:<br />
Bemueh dich doch ein bisschen. Nur ein bisschen. Ein klitzi kleines bisschen. Nur ganz ganz ganz ganz ganz wenig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132927</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:45:36 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:47:53 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>Steht doch eh alles schon in der Fehlermeldung?</p>
</blockquote>
<p>Seit wann wird hier denn ein Copy Ctor aufgerufen?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132929</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:47:53 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:49:38 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>dot schrieb:</p>
<blockquote>
<p>Steht doch eh alles schon in der Fehlermeldung?</p>
</blockquote>
<p>Seit wann wird hier denn ein Copy Ctor aufgerufen?!</p>
</blockquote>
<p><a href="http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&amp;faq=copyvsdirect#Answ" rel="nofollow">http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&amp;faq=copyvsdirect#Answ</a></p>
<p>Grundlagen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132930</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:50:54 GMT]]></title><description><![CDATA[<p>Du hast die Fehlermeldung offenbar nicht gelesen. Tu's bitte nochmal, bevor du versuchst, mich als Depp hinzustellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132931</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:50:54 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:52:55 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>dot schrieb:</p>
<blockquote>
<p>Steht doch eh alles schon in der Fehlermeldung?</p>
</blockquote>
<p>Seit wann wird hier denn ein Copy Ctor aufgerufen?!</p>
</blockquote>
<p>Spätestens seit es einen C++ Standard gibt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132933</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:52:55 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:54:18 GMT]]></title><description><![CDATA[<p>Ach wisst ihr was, lassts gut sein. Ihr wollt mir eh nicht helfen, und auf dümmliche Aussagen kann ich verzichten. Danke auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132935</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:54:18 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:54:31 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Du hast die Fehlermeldung offenbar nicht gelesen. Tu's bitte nochmal, bevor du versuchst, mich als Depp hinzustellen.</p>
</blockquote>
<p>Lies dir den Link durch, da steht die Problematik ganz genau beschrieben. Als Depp hast du dich gerade selbst abgestempelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132936</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:54:31 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 16:57:57 GMT]]></title><description><![CDATA[<p>Der Compiler beklagt sich dass es keinen Copy-Constructor gibt. Für die Copy-Initialization ist der aber notwendig. Viel mehr gibts dazu einfach nicht zu sagen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132937</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 18 Oct 2011 16:57:57 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 17:04:51 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Du hast die Fehlermeldung offenbar nicht gelesen. Tu's bitte nochmal, bevor <strong>du versuchst</strong>, mich als Depp hinzustellen.</p>
</blockquote>
<p>Das hast du schon längst selber getan. <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="😉"
    /><br />
<a href="http://www.c-plusplus.net/forum/searchresults" rel="nofollow">Quelle</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132943</guid><dc:creator><![CDATA[owned you? YES!]]></dc:creator><pubDate>Tue, 18 Oct 2011 17:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 17:06:39 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>Lies dir den Link durch, da steht die Problematik ganz genau beschrieben. Als Depp hast du dich gerade selbst abgestempelt.</p>
</blockquote>
<p>Wenn ich einen Link bekomme, bei dem der Titel &quot;Q: Wird für T x = u; der Zuweisungsoperator von T aufgerufen?&quot; lautet, komme ich mir veräppelt vor.</p>
<p>Und im Übrigen steht da auch: &quot;Der C++ Standard erlaubt bei copy-initialization die Eleminierung des temporären Objekts. [...] In diesem Fall wird aus der copy-initialization also eine direct-initialization.&quot;</p>
<p>Ich will keinen Copy Ctor aufrufen, ich will den stinknormalen T-Ctor aufrufen. Ist das so schwer zu kapieren?</p>
<p>Eure Art ist wieder mal zum Kotzen. Vielen Dank. Vielen Dank für nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132946</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 17:06:39 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 17:15:10 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Wenn ich einen Link bekomme, bei dem der Titel &quot;Q: Wird für T x = u; der Zuweisungsoperator von T aufgerufen?&quot; lautet, komme ich mir veräppelt vor.</p>
</blockquote>
<p>Na dann lass mich die, für dein Problem, äquivalente Frage formulieren: &quot;Q: Wird bei T x = u; der Copy-Constructor von T aufgerufen?&quot;.</p>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Und im Übrigen steht da auch: &quot;Der C++ Standard erlaubt bei copy-initialization die Eleminierung des temporären Objekts.</p>
</blockquote>
<p>Ja der Standard <em>erlaubt</em> die Copy-Elision des erzeugten Temporaries und praktisch jeder Compiler wird die auch durchführen. Das ändert aber nichts daran, dass es sich um eine Copy-Initialization handelt, für die der Copy-Constructor verfügbar sein muss.</p>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Ich will keinen Copy Ctor aufrufen, ich will den stinknormalen T-Ctor aufrufen. Ist das so schwer zu kapieren?</p>
</blockquote>
<p>Dann ruf den stinknormalen Ctor auf!? Ist das so schwer zu kapieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132952</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 18 Oct 2011 17:15:10 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 17:15:11 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Wenn ich einen Link bekomme, bei dem der Titel &quot;Q: Wird für T x = u; der Zuweisungsoperator von T aufgerufen?&quot; lautet, komme ich mir veräppelt vor.</p>
</blockquote>
<p>Wieso?</p>
<p>Du fragst warum dort der CopyCtor aufgerufen wird. Und das steht in dem Artikel. Weil du = verwendet hast, wird der CopyCtor benutzt. Die Erklaerung warum das so ist, steht in dem Artikel.</p>
<blockquote>
<p>Ich will keinen Copy Ctor aufrufen, ich will den stinknormalen T-Ctor aufrufen. Ist das so schwer zu kapieren?</p>
</blockquote>
<p>Nein. Aber wenn du dich dumm stellst duerfen wir das auch, oder?<br />
Die Loesung wurde ja schon genannt. Natuerlich nicht auf die netteste Art, keine Frage - aber wer dumm fragt, bekommt dumme Antworten.</p>
<p>Dein Problem ist also, dass du = verwendest wo du es nicht verwenden darfst. Mit einer direct-initialization geht es ohne Probleme.</p>
<blockquote>
<p>Eure Art ist wieder mal zum Kotzen. Vielen Dank. Vielen Dank für nichts.</p>
</blockquote>
<p>Deine Art ist natuerlich viel besser.</p>
<p>Ne, im Ernst. Du hast potential. Aber du wirfst es durch arroganz weg. Das ist schade. arrogant darf man erst sein, wenn man etwas erreicht hat. Du stehst erst am Anfang. Lerne! Das Potential ist da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132953</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 18 Oct 2011 17:15:11 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 17:21:42 GMT]]></title><description><![CDATA[<p>Es gibt keine dummen Fragen, nur dumme Antworten.<br />
-eof-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132958</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 18 Oct 2011 17:21:42 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 17:23:40 GMT]]></title><description><![CDATA[<p>Ich fand die Frage gut und die Antworten sehr gut. Wo ist das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132959</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Tue, 18 Oct 2011 17:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to std::atomic on Tue, 18 Oct 2011 18:10:46 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Wenn ich einen Link bekomme, bei dem der Titel &quot;Q: Wird für T x = u; der Zuweisungsoperator von T aufgerufen?&quot; lautet, komme ich mir veräppelt vor.</p>
</blockquote>
<p>Statt zu erklären, wie toll du doch bist und wir alle deine Intelligenz unterschätzen, solltest du den Link doch vielleicht nochmal lesen.</p>
<blockquote>
<p>Der C++ Standard erlaubt bei copy-initialization die Eleminierung des temporären Objekts. Statt also ein temporäres Objekt zu erstellen und dieses zusammen mit dem Copy-Konstruktor zur Erzeugung des neuen Objekts zu verwenden, kann ein Compiler das neue Objekt auch direkt kreieren. In diesem Fall wird aus der copy-initialization also eine direct-initialization. [...]</p>
<p>Wichtig hierbei ist, dass ein Compiler die beschriebene Transformation nur durchführen darf, <strong>wenn der nicht transformierte Code ebenfalls legal wäre</strong>. Wäre also z.B. der Copy-Konstruktor von Foo private, so müsste sowohl die Initialisierung von f2, als auch die von f3 in einer Fehlermeldung resultieren. Egal ob der Compiler nun den Weg über ein temporäres Objekt geht oder nicht.</p>
</blockquote>
<p>Eigene Hervorhebung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2132980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2132980</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 18 Oct 2011 18:10:46 GMT</pubDate></item></channel></rss>