<?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[Auto_ptr problem]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein problem mit den Auto-Pointern<br />
auto-ptr, shared_ptr, usw.</p>
<p>Ich habe diese noch nie benutzt, und weiss nun nicht wirklich welcher<br />
für meine konktrete Anwendung der richtige//beste ist.</p>
<p>Mein Problem ist :</p>
<p>Ich habe ziemlich grosse Datenstrukturen, welche in Stacks &quot;umherwandern&quot;<br />
können, bisher kopiere ich diese immer, was ziemlich in-effizient ist.<br />
Ich würde nun gerne, die ganzen Strukturen immer nur über ihren pointer<br />
umherschieben (weil keine Struktur 2mal in verschiedenen stacks sein kann)</p>
<p>Ich bräuchte also einen Pointer welcher &quot;moveable&quot; ist.<br />
shared_ptr sind ja eher fürs kopieren, auto-ptr kann man nicht kopieren,<br />
also auch nicht verschieben, hat wer eine idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211924/auto_ptr-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 14:12:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211924.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Apr 2008 09:43:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auto_ptr problem on Tue, 29 Apr 2008 09:43:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein problem mit den Auto-Pointern<br />
auto-ptr, shared_ptr, usw.</p>
<p>Ich habe diese noch nie benutzt, und weiss nun nicht wirklich welcher<br />
für meine konktrete Anwendung der richtige//beste ist.</p>
<p>Mein Problem ist :</p>
<p>Ich habe ziemlich grosse Datenstrukturen, welche in Stacks &quot;umherwandern&quot;<br />
können, bisher kopiere ich diese immer, was ziemlich in-effizient ist.<br />
Ich würde nun gerne, die ganzen Strukturen immer nur über ihren pointer<br />
umherschieben (weil keine Struktur 2mal in verschiedenen stacks sein kann)</p>
<p>Ich bräuchte also einen Pointer welcher &quot;moveable&quot; ist.<br />
shared_ptr sind ja eher fürs kopieren, auto-ptr kann man nicht kopieren,<br />
also auch nicht verschieben, hat wer eine idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500325</guid><dc:creator><![CDATA[Pointer-Problem]]></dc:creator><pubDate>Tue, 29 Apr 2008 09:43:16 GMT</pubDate></item><item><title><![CDATA[Reply to Auto_ptr problem on Tue, 29 Apr 2008 09:55:35 GMT]]></title><description><![CDATA[<p>shared_ptr wäre doch in Ordnung. Solange das Objekt die Stacks<br />
abläuft bleibt es erhalten, danach wird es automatisch freigegeben.<br />
Und kopiert wird ja nur der shared_ptr nicht das Objekt selbst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500336</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Tue, 29 Apr 2008 09:55:35 GMT</pubDate></item><item><title><![CDATA[Reply to Auto_ptr problem on Tue, 29 Apr 2008 09:57:39 GMT]]></title><description><![CDATA[<p>Schau dir mal die boost::ptr_container Library an.<br />
Da kannst du Pointer in einem STL konformen Container verwalten.<br />
Und du kannst die Pointer auch wieder freigeben, um sie z.B. in einen anderen Container zu schieben.</p>
<p><a href="http://www.boost.org/doc/libs/1_35_0/libs/ptr_container/doc/ptr_container.html" rel="nofollow">http://www.boost.org/doc/libs/1_35_0/libs/ptr_container/doc/ptr_container.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500337</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Tue, 29 Apr 2008 09:57:39 GMT</pubDate></item><item><title><![CDATA[Reply to Auto_ptr problem on Tue, 29 Apr 2008 10:02:11 GMT]]></title><description><![CDATA[<p>Pointer-Problem schrieb:</p>
<blockquote>
<p>ich habe ein problem mit den Auto-Pointern<br />
auto-ptr, shared_ptr, usw.</p>
</blockquote>
<p>auto_ptr würde ich erstmal nicht mehr verwenden.</p>
<p>boost::scoped_ptr ist für ich sag mal &quot;lokale&quot; Datenhaltung (Keine Kopie...).<br />
boost::shared_ptr ist auch für Container etc. geeignet, kann kopiert werden und die Letzte Intanz löscht den Inhalt.</p>
<p>Pointer-Problem schrieb:</p>
<blockquote>
<p>Ich habe ziemlich grosse Datenstrukturen, welche in Stacks &quot;umherwandern&quot; können, bisher kopiere ich diese immer, was ziemlich in-effizient ist.</p>
</blockquote>
<p>Grundsätzlich sind alle Formen von Smartpointern nicht für den Stack (Wenn du den Speicherbereich nicht Container meinst), sondern für die Speicherverwaltung von Elementen auf dem Heap gedacht. Wenn du aber Container meinst, so ist shared_ptr die richtige Wahl.</p>
<p>Pointer-Problem schrieb:</p>
<blockquote>
<p>Ich bräuchte also einen Pointer welcher &quot;moveable&quot; ist.</p>
</blockquote>
<p>Ich nehme einfach mal an das du dich Missverständlich ausdrückst. Keiner der Smartpointer ist &quot;moveable&quot; im Sinne das der Speicher auf den er verweist hin und her geschoben wird, aber shared_ptr ist kopierbar (und die Kopie verweist auf den gleichen Speicherbereich).</p>
<p>Pointer-Problem schrieb:</p>
<blockquote>
<p>shared_ptr sind ja eher fürs kopieren, auto-ptr kann man nicht kopieren, also auch nicht verschieben, hat wer eine idee?</p>
</blockquote>
<p>Wie gesagt verschieben gibt es garkeinen. Ich nehme aber sehr stark an das hier einfach Begriffe durcheinander geworfen werden.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500344</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 29 Apr 2008 10:02:11 GMT</pubDate></item><item><title><![CDATA[Reply to Auto_ptr problem on Tue, 29 Apr 2008 10:31:43 GMT]]></title><description><![CDATA[<p>ok, dann werde ich mal versuchen, das ganze mit shared_ptr zu programmieren.</p>
<p>Mit verschieben meinte ich :<br />
&quot;von einem std::stack in einen anderen std::stack&quot;</p>
<p>was ja heisst : im neuem stack konstruieren, im alten stack destruieren.</p>
<p>Und das ist in diesem fall extrem aufwendig.</p>
<p>Ich denke nun habe ich alle zweideutigkeiten aufgelöst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500377</guid><dc:creator><![CDATA[Pointer-Problem]]></dc:creator><pubDate>Tue, 29 Apr 2008 10:31:43 GMT</pubDate></item><item><title><![CDATA[Reply to Auto_ptr problem on Tue, 29 Apr 2008 10:39:08 GMT]]></title><description><![CDATA[<p>Pointer-Problem schrieb:</p>
<blockquote>
<p>...<br />
was ja heisst : im neuem stack konstruieren, im alten stack destruieren.<br />
...</p>
</blockquote>
<p>In Deinen Stacks solltest Du nur shared_ptr halten.<br />
Wenn Du einen shared_ptr von einem Stack in den anderen schiebst, dann<br />
wird das Objekt, welches vom shared_ptr verwaltet wird nicht kopiert,<br />
nur der shared_ptr selber, was aber nicht allzu aufwendig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500387</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Tue, 29 Apr 2008 10:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to Auto_ptr problem on Tue, 29 Apr 2008 18:26:31 GMT]]></title><description><![CDATA[<p>Von welchem Stack redest du überhaupt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500743</guid><dc:creator><![CDATA[???????]]></dc:creator><pubDate>Tue, 29 Apr 2008 18:26:31 GMT</pubDate></item><item><title><![CDATA[Reply to Auto_ptr problem on Tue, 29 Apr 2008 21:31:04 GMT]]></title><description><![CDATA[<p>Pointer-Problem schrieb:</p>
<blockquote>
<p>Ich bräuchte also einen Pointer welcher &quot;moveable&quot; ist.<br />
shared_ptr sind ja eher fürs kopieren, auto-ptr kann man nicht kopieren,<br />
also auch nicht verschieben, hat wer eine idee?</p>
</blockquote>
<p>Da die STL (noch) keine &quot;movable types&quot; kennt brauchst du einen Pointer der kopierbar ist. Wie du selbst schon geschrieben hast ist shared_ptr kopierbar -&gt; Problem gelöst <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500848</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 29 Apr 2008 21:31:04 GMT</pubDate></item></channel></rss>