<?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[swap]]></title><description><![CDATA[<p>hi</p>
<p>das normale swap wird ja normalerweise so implementiert:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void swap(T&amp; lhs, T&amp; rhs)
{
  T temp(lhs);
  lhs = rhs;
  rhs = temp;
}
</code></pre>
<p>was sprich denn gegen diese implementierung:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void swap(T&amp; lhs, T&amp; rhs)
{
  T* temp = &amp;lhs;
  &amp;lhs = &amp;rhs;
  &amp;rhs = &amp;temp;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/288945/swap</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 16:11:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288945.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Jun 2011 17:38:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to swap on Sat, 25 Jun 2011 17:38:10 GMT]]></title><description><![CDATA[<p>hi</p>
<p>das normale swap wird ja normalerweise so implementiert:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void swap(T&amp; lhs, T&amp; rhs)
{
  T temp(lhs);
  lhs = rhs;
  rhs = temp;
}
</code></pre>
<p>was sprich denn gegen diese implementierung:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void swap(T&amp; lhs, T&amp; rhs)
{
  T* temp = &amp;lhs;
  &amp;lhs = &amp;rhs;
  &amp;rhs = &amp;temp;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2083996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2083996</guid><dc:creator><![CDATA[lol_of_lolcraft]]></dc:creator><pubDate>Sat, 25 Jun 2011 17:38:10 GMT</pubDate></item><item><title><![CDATA[Reply to swap on Sat, 25 Jun 2011 17:42:26 GMT]]></title><description><![CDATA[<p>Schau's dir doch mal im Debugger durch, dann siehst du womöglich den Unterschied <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 />
(die erste Variante speichert einen der zu tauschenden Werte in einer lokalen Variablen, der zweite holt sich nur einen weiteren Zeiger auf eine Variable - d.h. mit der zweiten Zuweisung überschreibst du auch den Inhalt, auf dem temp zeigt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084001</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 25 Jun 2011 17:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to swap on Sat, 25 Jun 2011 17:42:36 GMT]]></title><description><![CDATA[<p>Nein, das geht nicht (Rückgabe des Adress-Ops verändern). Sieh dir das Gimpl-Idom an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084002</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 25 Jun 2011 17:42:36 GMT</pubDate></item><item><title><![CDATA[Reply to swap on Sat, 25 Jun 2011 18:33:13 GMT]]></title><description><![CDATA[<p>lol_of_lolcraft schrieb:</p>
<blockquote>
<p>was sprich denn gegen diese implementierung:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void swap(T&amp; lhs, T&amp; rhs)
{
  T* temp = &amp;lhs;
  &amp;lhs = &amp;rhs;
  &amp;rhs = &amp;temp;
}
</code></pre>
</blockquote>
<p>...dass sie nicht kompiliert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084038</guid><dc:creator><![CDATA[i_am_with_stupid]]></dc:creator><pubDate>Sat, 25 Jun 2011 18:33:13 GMT</pubDate></item><item><title><![CDATA[Reply to swap on Sat, 25 Jun 2011 19:09:39 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Nein, das geht nicht (Rückgabe des Adress-Ops verändern). Sieh dir das Gimpl-Idom an.</p>
</blockquote>
<p>Gimpl? Ich kenn Pimpl. Wenn du was anderes meinst, würde ich mich sehr über eine Quelle freuen, da ich in Google keine Quelle finde.</p>
<p>Danke EOutOfResources für deine zukünftige Antwort!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084048</guid><dc:creator><![CDATA[Der Nette]]></dc:creator><pubDate>Sat, 25 Jun 2011 19:09:39 GMT</pubDate></item><item><title><![CDATA[Reply to swap on Sun, 26 Jun 2011 16:01:22 GMT]]></title><description><![CDATA[<p>Der Nette schrieb:</p>
<blockquote>
<p>Gimpl?</p>
</blockquote>
<p>Oh, vertippt. Ich meinte das Pimpl-Idom.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084334</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sun, 26 Jun 2011 16:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to swap on Sun, 26 Jun 2011 16:35:09 GMT]]></title><description><![CDATA[<p>Was hat denn das mit pimpl zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084353</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 26 Jun 2011 16:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to swap on Sun, 26 Jun 2011 16:49:17 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Was hat denn das mit pimpl zu tun.</p>
</blockquote>
<p>weil du mit pimpl ganz einfach swap ohne kopien implementieren kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084360</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 26 Jun 2011 16:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to swap on Mon, 27 Jun 2011 09:19:38 GMT]]></title><description><![CDATA[<p>lol_of_lolcraft schrieb:</p>
<blockquote>
<p>was sprich denn gegen diese implementierung:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void swap(T&amp; lhs, T&amp; rhs)
{
  T* temp = &amp;lhs;
  &amp;lhs = &amp;rhs;
  &amp;rhs = &amp;temp;
}
</code></pre>
</blockquote>
<p>Dass sie nicht funktioniert. Du kannst in C++ die Adressen zweier Variablen nicht vertauschen (selbst Zeiger können das nicht, da kann man nur das, auf das sie zeigen, vertauschen, aber nicht die Adressen der Zeigervariablen selbst).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084668</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 27 Jun 2011 09:19:38 GMT</pubDate></item></channel></rss>