<?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[Generalisierte Refcounting Lösung gesucht.]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte es vermeiden Refcounting selbst zu implementieren und suche deswegen eine generalisierte Lösung.</p>
<p>Ich möchte einen beliebigen Typ (keinen Zeiger, eine Art Handle) in einen schlauen Container stecken können, der eine von mir definierte Aktion durchführt sobald der Referenzzähler auf 0 abgesunken ist.</p>
<p>Da ich viele solche Objekte habe möchte ich sie nicht auf dem Heap anlegen nur um std::shared_ptr nutzen zu können. Da sie in der Regel &lt;= sizeof(void*) sind, könnte ich sie zwar per reinterpret_cast in einen std::shared_ptr mogeln, das fände ich aber sehr hässlich.</p>
<p>Irgendwelche Vorschläge? Gibt es da etwas in Boost?<br />
Danke und Grüße,<br />
Ethon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316417/generalisierte-refcounting-lösung-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 04:54:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316417.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 May 2013 11:54:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Generalisierte Refcounting Lösung gesucht. on Fri, 03 May 2013 11:54:10 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte es vermeiden Refcounting selbst zu implementieren und suche deswegen eine generalisierte Lösung.</p>
<p>Ich möchte einen beliebigen Typ (keinen Zeiger, eine Art Handle) in einen schlauen Container stecken können, der eine von mir definierte Aktion durchführt sobald der Referenzzähler auf 0 abgesunken ist.</p>
<p>Da ich viele solche Objekte habe möchte ich sie nicht auf dem Heap anlegen nur um std::shared_ptr nutzen zu können. Da sie in der Regel &lt;= sizeof(void*) sind, könnte ich sie zwar per reinterpret_cast in einen std::shared_ptr mogeln, das fände ich aber sehr hässlich.</p>
<p>Irgendwelche Vorschläge? Gibt es da etwas in Boost?<br />
Danke und Grüße,<br />
Ethon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2320609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2320609</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Fri, 03 May 2013 11:54:10 GMT</pubDate></item><item><title><![CDATA[Reply to Generalisierte Refcounting Lösung gesucht. on Fri, 03 May 2013 11:58:05 GMT]]></title><description><![CDATA[<p>Erst kürzlich habe ich einen shared_handle geschrieben.<br />
Ich habe dort zum refcounting einfach einen shared_ptr benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2320612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2320612</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 03 May 2013 11:58:05 GMT</pubDate></item><item><title><![CDATA[Reply to Generalisierte Refcounting Lösung gesucht. on Fri, 03 May 2013 12:33:46 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Ich möchte einen beliebigen Typ (keinen Zeiger, eine Art Handle) in einen schlauen Container stecken können, der eine von mir definierte Aktion durchführt sobald der Referenzzähler auf 0 abgesunken ist.</p>
</blockquote>
<p>Welcher Referenzzähler? Was willst du zählen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2320623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2320623</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 03 May 2013 12:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to Generalisierte Refcounting Lösung gesucht. on Fri, 03 May 2013 12:56:20 GMT]]></title><description><![CDATA[<p>Mir ist gerade schlagartig klar geworden, dass ohne allozierten Kontrollblock sowieso kein Refcounting möglich ist. Also könnte ich sowieso direkt make_shared nutzen, das kommt auch mit 1x Allokation aus.</p>
<p>Werde wohl die Objekte gruppieren und in einen shared_ptr stecken.<br />
Danke für die Versuche zu verstehen was ich will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2320639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2320639</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Fri, 03 May 2013 12:56:20 GMT</pubDate></item><item><title><![CDATA[Reply to Generalisierte Refcounting Lösung gesucht. on Fri, 03 May 2013 13:28:24 GMT]]></title><description><![CDATA[<p>Es gibt da noch <code>boost::intrusive_ptr</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2320657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2320657</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 03 May 2013 13:28:24 GMT</pubDate></item><item><title><![CDATA[Reply to Generalisierte Refcounting Lösung gesucht. on Fri, 03 May 2013 17:14:53 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Mir ist gerade schlagartig klar geworden, dass ohne allozierten Kontrollblock sowieso kein Refcounting möglich ist.</p>
</blockquote>
<p>Das stimmt so nicht. Man kann die &quot;Handles&quot; auch untereinander in einem Ring verpointern. Allerdings ist das dann schon etwas anspruchsvoller, wenn man das threadsafe haben will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2320738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2320738</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 03 May 2013 17:14:53 GMT</pubDate></item></channel></rss>