<?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[Verwendung von std::auto_ptr]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab folgendes in einem &quot;Konkurenz&quot;-Forum gelesen:</p>
<blockquote>
<p>auto_ptr needs to be handled with care. Read Meyers very carefully on the subject. Points to note:</p>
<p>- You cannot use auto_ptrs in an STL container<br />
- Beware of passing auto_ptrs to functions by value</p>
</blockquote>
<p>Wenn ich ehrlich bin finde ich es sehr sinnvoll std::auto_ptr in STL containern<br />
zu verwenden. So kann ich doch garantieren, dass alle Objekte in dem container<br />
freigegeben werden, wenn dieser gelöscht wird.<br />
Außerdem geben Container doch eine Referenz auf das Objekt zurück. Klar, dass ich<br />
den std::auto_ptr nicht kopieren darf, da er ja sonst nicht mehr im container ist,<br />
aber sowas sollte doch wohl selbstverständlich sein.<br />
Oder was spricht gegen std::auto_ptr in STL containern?</p>
<p>und warum soll man keine auto_ptr per value übergeben? So kann man doch sehr<br />
deutlich zeigen, dass die Funktion die Verantwortung für ein Objekt übernimmt...</p>
<p>Gruß,<br />
*Cpp-Anfänger*</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197072/verwendung-von-std-auto_ptr</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 00:00:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197072.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Nov 2007 11:33:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verwendung von std::auto_ptr on Tue, 06 Nov 2007 11:33:55 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab folgendes in einem &quot;Konkurenz&quot;-Forum gelesen:</p>
<blockquote>
<p>auto_ptr needs to be handled with care. Read Meyers very carefully on the subject. Points to note:</p>
<p>- You cannot use auto_ptrs in an STL container<br />
- Beware of passing auto_ptrs to functions by value</p>
</blockquote>
<p>Wenn ich ehrlich bin finde ich es sehr sinnvoll std::auto_ptr in STL containern<br />
zu verwenden. So kann ich doch garantieren, dass alle Objekte in dem container<br />
freigegeben werden, wenn dieser gelöscht wird.<br />
Außerdem geben Container doch eine Referenz auf das Objekt zurück. Klar, dass ich<br />
den std::auto_ptr nicht kopieren darf, da er ja sonst nicht mehr im container ist,<br />
aber sowas sollte doch wohl selbstverständlich sein.<br />
Oder was spricht gegen std::auto_ptr in STL containern?</p>
<p>und warum soll man keine auto_ptr per value übergeben? So kann man doch sehr<br />
deutlich zeigen, dass die Funktion die Verantwortung für ein Objekt übernimmt...</p>
<p>Gruß,<br />
*Cpp-Anfänger*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398556</guid><dc:creator><![CDATA[*Cpp-Anfänger* 0]]></dc:creator><pubDate>Tue, 06 Nov 2007 11:33:55 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von std::auto_ptr on Tue, 06 Nov 2007 11:40:46 GMT]]></title><description><![CDATA[<p>@Container:<br />
Die Containerklassen können ihre Elemente intern kopieren (gerade vector&lt;&gt; macht das auch regelmäßig) - und da ist das Verhalten des auto_ptr&lt;&gt; etwas ..nunja.. hinderlich.<br />
(technisch gesprochen: Der Copy-Ctor von auto_ptr&lt;&gt; entspricht nicht den Anforderungen, die an Container-Elemente gestellt werden)</p>
<p>@Übergabe per value:<br />
Ja, die aufgerufene Funktion übernimmt die Verantwortung über das Objekt - aber sie gibt sie am Ende nicht wieder zurück:</p>
<pre><code class="language-cpp">void print_value(auto_ptr&lt;my_type&gt; ptr)
{
  ptr-&gt;print();
  ...
}

auto_ptr&lt;my_type&gt; my_ptr(new my_type);
...
print_value(my_ptr);//Ups, wir haben uns gerade das Objekt zerlegt, mit dem wir arbeiten wollten
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1398560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398560</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 06 Nov 2007 11:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von std::auto_ptr on Tue, 06 Nov 2007 11:55:58 GMT]]></title><description><![CDATA[<p>Danke CStoll!!!</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>(technisch gesprochen: Der Copy-Ctor von auto_ptr&lt;&gt; entspricht nicht den Anforderungen, die an Container-Elemente gestellt werden)</p>
</blockquote>
<p>Klingt logisch...</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>//Ups, wir haben uns gerade das Objekt zerlegt, mit dem wir arbeiten wollten</p>
</blockquote>
<p>Eigentlich ist das klar, kann man allerdings leicht übersehen <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/1398573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398573</guid><dc:creator><![CDATA[*Cpp-Anfänger* 0]]></dc:creator><pubDate>Tue, 06 Nov 2007 11:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von std::auto_ptr on Tue, 06 Nov 2007 12:03:05 GMT]]></title><description><![CDATA[<p><em>Cpp-Anfänger</em> schrieb:</p>
<blockquote>
<p>Eigentlich ist das klar, kann man allerdings leicht übersehen <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>
</blockquote>
<p>Alternativen zum auto_ptr gibt es aber: z.B. kann man boost::shared_ptr in Listen verwenden. Zudem gibt es im kommenden Standard (bzw. bei einigen STL Implementierungen im Namensraum std::tr1 ein entsprechendes Konstrukt).</p>
<p>Nachteil: Boost ist für einen absoluten Anfänger vielleicht schon zuviel des guten und belegt (wenn man alles linkt) auch wahnsinnig viel Platz; wobei die Smartpointer keinen Linklauf erfordern da es reine Headerimplementierungen sind (Falls du MSVC++ benutzt gibt es aber auch eine Installationsversion im Netz die dir zumindest einige Schritte abnimmt).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398576</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 06 Nov 2007 12:03:05 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von std::auto_ptr on Tue, 06 Nov 2007 12:07:42 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Nachteil: Boost ist für einen absoluten Anfänger vielleicht schon zuviel des guten und belegt (wenn man alles linkt) auch wahnsinnig viel Platz;</p>
</blockquote>
<p>Das stimmt nur solange Du Gebrauch von den Binärbibliotheken machst. Die meisten Boost-Bestandteile (so auch die Smartpointer) benötigen <strong>ausschließlich</strong> Headerfiles. Das heißt: Boost downloaden, entpacken, Include-Pfad in der IDE ergänzen, fertig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398579</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 06 Nov 2007 12:07:42 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von std::auto_ptr on Tue, 06 Nov 2007 13:11:19 GMT]]></title><description><![CDATA[<p>Benutze auto_ptr ehrlich gesagt ganz gerne.</p>
<p>Per value übergebe ich ihn auch gerne. Z.B. bei &quot;Ablauf einbahnstraßen&quot; wie raussenden einer Nachricht. Sozusagen bei shoot and forget Aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398639</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Tue, 06 Nov 2007 13:11:19 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von std::auto_ptr on Tue, 06 Nov 2007 13:32:39 GMT]]></title><description><![CDATA[<p>Die Idee leuchtet mir spontan ein ....<br />
(was nicht automatisch bedeutet, dass sie gut sei ... nur scheint sie es mir gerade)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398653</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 06 Nov 2007 13:32:39 GMT</pubDate></item></channel></rss>