<?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[Einfache Zuweisung von boost::shared_ptr]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich hantiere noch nicht so lange mit shared_ptr von boost herum und eine Sachen erscheint mir doch recht umständlich, vielleicht weiß da jemand Abhilfe.<br />
Da eine Zeile Code mehr sagt als 1000 Worte:</p>
<pre><code class="language-cpp">T functionCall( ... )
{
    ...
}

boost::shared_ptr&lt;T&gt; p;
p = boost::shared_ptr&lt;T&gt;( new T( functionCall( ... ) ) );
</code></pre>
<p>Kann man die lange Zeile irgendwie vereinfachen? Als dreckigen Workaround hab ich kurz folgendes gehabt, war mir dann aber doch zu dreckig :D:</p>
<pre><code class="language-cpp">template&lt;class T&gt; void operator+= ( boost::shared_ptr&lt;T&gt;&amp; t, const T&amp; elem )
{
	t = boost::shared_ptr&lt;T&gt;( new T( elem ) );
}
 :arrow_right: 
p += functionCall( ... );
</code></pre>
<p>PS: Kann man eigentlich Zeilennummern für den Code anschalten? Ich meine ich hätte das schon gesehen, aber auch bei den [.code]-Tags gibt's keine Zeilennummern (jedenfalls in der Vorschau).</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/208376/einfache-zuweisung-von-boost-shared_ptr</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 19:37:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208376.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Mar 2008 19:49:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einfache Zuweisung von boost::shared_ptr on Mon, 17 Mar 2008 19:49:54 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich hantiere noch nicht so lange mit shared_ptr von boost herum und eine Sachen erscheint mir doch recht umständlich, vielleicht weiß da jemand Abhilfe.<br />
Da eine Zeile Code mehr sagt als 1000 Worte:</p>
<pre><code class="language-cpp">T functionCall( ... )
{
    ...
}

boost::shared_ptr&lt;T&gt; p;
p = boost::shared_ptr&lt;T&gt;( new T( functionCall( ... ) ) );
</code></pre>
<p>Kann man die lange Zeile irgendwie vereinfachen? Als dreckigen Workaround hab ich kurz folgendes gehabt, war mir dann aber doch zu dreckig :D:</p>
<pre><code class="language-cpp">template&lt;class T&gt; void operator+= ( boost::shared_ptr&lt;T&gt;&amp; t, const T&amp; elem )
{
	t = boost::shared_ptr&lt;T&gt;( new T( elem ) );
}
 :arrow_right: 
p += functionCall( ... );
</code></pre>
<p>PS: Kann man eigentlich Zeilennummern für den Code anschalten? Ich meine ich hätte das schon gesehen, aber auch bei den [.code]-Tags gibt's keine Zeilennummern (jedenfalls in der Vorschau).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1476168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1476168</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 17 Mar 2008 19:49:54 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Zuweisung von boost::shared_ptr on Mon, 17 Mar 2008 19:55:00 GMT]]></title><description><![CDATA[<p>Für sowas hat shared_ptr die Funktion reset.</p>
<pre><code class="language-cpp">p.reset( new T( functionCall( ... ) ) );
</code></pre>
<p>Die zeilennummern kommen erst ab einer bestimmten Länge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1476170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1476170</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 17 Mar 2008 19:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Zuweisung von boost::shared_ptr on Mon, 17 Mar 2008 19:57:00 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Für sowas hat shared_ptr die Funktion reset.</p>
<pre><code class="language-cpp">p.reset( new T( functionCall( ... ) ) );
</code></pre>
</blockquote>
<p>Hm, Mist. Finde ich unbefriedigend, ich finde ein Gleichheitszeichen doch ungleich ausdrucksstärker <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="😕"
    /> Aber danke trotzdem!</p>
<p>Braunstein schrieb:</p>
<blockquote>
<p>Die zeilennummern kommen erst ab einer bestimmten Länge.</p>
</blockquote>
<p>Oh, ok.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1476172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1476172</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 17 Mar 2008 19:57:00 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Zuweisung von boost::shared_ptr on Mon, 17 Mar 2008 22:21:36 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<pre><code class="language-cpp">boost::shared_ptr&lt;T&gt; p;
p = boost::shared_ptr&lt;T&gt;( new T( functionCall( ... ) ) );
</code></pre>
</blockquote>
<p>Kann man auch vereinfachen zu</p>
<pre><code class="language-cpp">boost::shared_ptr&lt;T&gt; p( new T( functionCall( ... ) ) );
</code></pre>
<p>Variablen gleich zu initialisieren wenn man sie deklariert wird sowieso meist als besserer Stil angesehn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1476227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1476227</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 17 Mar 2008 22:21:36 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Zuweisung von boost::shared_ptr on Mon, 17 Mar 2008 22:38:30 GMT]]></title><description><![CDATA[<p>Achso, klar, aber die Variable sitzt in einer Klasse und wird nicht bei der Konstruktion belegt, deshalb hatte ich das so differenziert hingeschrieben <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/1476236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1476236</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 17 Mar 2008 22:38:30 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Zuweisung von boost::shared_ptr on Mon, 17 Mar 2008 22:48:13 GMT]]></title><description><![CDATA[<p>pumuckl! Ja ja, immer diese optimalen Fälle als Lösung.</p>
<p>Badestrand! Ja, es sieht nicht schön aus und außer Reset gibts erstmal nichts kürzeres.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1476239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1476239</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 17 Mar 2008 22:48:13 GMT</pubDate></item></channel></rss>