<?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[[Erzeuger] das alte Problem: Wer räumt auf?]]></title><description><![CDATA[<p>Hallo</p>
<p>Mal ne Frage: Wer räumt ein mit new erzeugtes, zurückgegebenes Objekt weg?<br />
Bsp:</p>
<pre><code class="language-cpp">class Erzeuger
{
    Objekt* erzeugeObjekt(string Name) {
        return new Objekt(Name);
    }
}

int main()
{
    Objekt pObjekt;
    pObjekt = Erzeuger.erzeugeObjekt(&quot;Neu&quot;);
}
</code></pre>
<p>Das scheint mir doch ne Stolperfalle zu sein und ich möchte das gern sauber lösen.</p>
<p>Vielen Dank im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168299/erzeuger-das-alte-problem-wer-räumt-auf</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 10:39:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168299.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Dec 2006 16:42:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 16:42:24 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Mal ne Frage: Wer räumt ein mit new erzeugtes, zurückgegebenes Objekt weg?<br />
Bsp:</p>
<pre><code class="language-cpp">class Erzeuger
{
    Objekt* erzeugeObjekt(string Name) {
        return new Objekt(Name);
    }
}

int main()
{
    Objekt pObjekt;
    pObjekt = Erzeuger.erzeugeObjekt(&quot;Neu&quot;);
}
</code></pre>
<p>Das scheint mir doch ne Stolperfalle zu sein und ich möchte das gern sauber lösen.</p>
<p>Vielen Dank im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195514</guid><dc:creator><![CDATA[Paul Panther]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:42:24 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 16:53:33 GMT]]></title><description><![CDATA[<p>Dokumentieren?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Wenn es nicht programmatisch gelöst wurde, bleibt nur ein Hinweis in der Doku oder direkt im Source.</p>
<p>Wenn es programmatisch gelöst werden soll, mußt du z.B. einen Garbagecollector (z.B. den bekannten von Hans Boehm) oder Smartpointer (gibts diverse für verschiedene Szenarien) benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195520</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:53:33 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 17:45:51 GMT]]></title><description><![CDATA[<p>Paul Panther schrieb:</p>
<blockquote>
<p>das alte Problem</p>
</blockquote>
<p>Tatsächlich. Dein Code ist weder Pseudocode noch C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195556</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Wed, 20 Dec 2006 17:45:51 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 17:49:20 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>Paul Panther schrieb:</p>
<blockquote>
<p>das alte Problem</p>
</blockquote>
<p>Tatsächlich. Dein Code ist weder Pseudocode noch C++.</p>
</blockquote>
<p>Was denn? <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195558</guid><dc:creator><![CDATA[Paul Panther]]></dc:creator><pubDate>Wed, 20 Dec 2006 17:49:20 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 17:54:38 GMT]]></title><description><![CDATA[<p>Paul Panther schrieb:</p>
<blockquote>
<p>finix schrieb:</p>
<blockquote>
<p>Paul Panther schrieb:</p>
<blockquote>
<p>das alte Problem</p>
</blockquote>
<p>Tatsächlich. Dein Code ist weder Pseudocode noch C++.</p>
</blockquote>
<p>Was denn? <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=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Ja, tschuldige. Man könnte es tatsächlich als Pseudocode ansehen; Pseudocode mit relativ hässlicher Syntax, undurchsichtiger und scheinbar inkonsistenter Semantik, verwandt für eine Problemschilderung bei der höchstwahrscheinlich realer, ggf vereinfachter, Code angemessener wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195564</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Wed, 20 Dec 2006 17:54:38 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 17:56:39 GMT]]></title><description><![CDATA[<p>Sorry, falsch gefragt..</p>
<p>Was stimmt nichtmit dem Code? Ok er ist nicht vollständig..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195569</guid><dc:creator><![CDATA[Paul Panther]]></dc:creator><pubDate>Wed, 20 Dec 2006 17:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 17:59:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main()
{
    Erzeuger e;
    Objekt *pObjekt = e.erzeugeObjekt(&quot;Neu&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1195570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195570</guid><dc:creator><![CDATA[schorsch code]]></dc:creator><pubDate>Wed, 20 Dec 2006 17:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 18:52:09 GMT]]></title><description><![CDATA[<p>std::auto_ptr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195593</guid><dc:creator><![CDATA[Arschi]]></dc:creator><pubDate>Wed, 20 Dec 2006 18:52:09 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 19:22:30 GMT]]></title><description><![CDATA[<p>hm, also wenn dein Erzeuger den mist in die Welt setzt, sollte das auch wieder beerdigen oder nicht?</p>
<pre><code class="language-cpp">class Erzeuger
{
    Objekt* erzeugeObjekt(string Name) {
        return new Objekt(Name);
    }
    Objekt* loescheObjekt(Objekt *obj_p) {
        delete obj_p;
    }
}

int main()
{
    Erzeuger e;
    Objekt *pObjekt;
    pObjekt = Erzeuger.erzeugeObjekt(&quot;Neu&quot;);
    Erzeuger.loescheObjekt(pObjekt);
    return 0;
}
</code></pre>
<p>Wichtig für delete ist, dass zur kompilierungszeit klar ist von welchem typ der übergebene Zeiger ist. Wenn du also z.B. zur Laufzeit ein Objekt aus einer library instanzierst, muss die library eine delete-funktion exportieren, da delete mit einem basis-klassen zeiger, hinter dem aber eine abgeleitete Klasse steckt, Mist baut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195617</guid><dc:creator><![CDATA[*BHN*-Leberknecht]]></dc:creator><pubDate>Wed, 20 Dec 2006 19:22:30 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 19:23:38 GMT]]></title><description><![CDATA[<p>Hat ihnen dieser Beitrag geholfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>[BHN]-Leberknecht schrieb:</p>
<blockquote>
<p>hm, also wenn dein Erzeuger den mist in die Welt setzt, sollte das auch wieder beerdigen oder nicht?</p>
<pre><code class="language-cpp">class Erzeuger
{
    Objekt* erzeugeObjekt(string Name) {
        return new Objekt(Name);
    }
    Objekt* loescheObjekt(Objekt *obj_p) {
        delete obj_p;
    }
}

int main()
{
    Erzeuger e;
    Objekt *pObjekt;
    pObjekt = Erzeuger.erzeugeObjekt(&quot;Neu&quot;);
    Erzeuger.loescheObjekt(pObjekt);
    return 0;
}
</code></pre>
<p>Wichtig für delete ist, dass zur kompilierungszeit klar ist von welchem typ der übergebene Zeiger ist. Wenn du also z.B. zur Laufzeit ein Objekt aus einer library instanzierst, muss die library eine delete-funktion exportieren, da delete mit einem basis-klassen zeiger, hinter dem aber eine abgeleitete Klasse steckt, Mist baut.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1195619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195619</guid><dc:creator><![CDATA[Paul Panther]]></dc:creator><pubDate>Wed, 20 Dec 2006 19:23:38 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 19:49:19 GMT]]></title><description><![CDATA[<p>[BHN]-Leberknecht schrieb:</p>
<blockquote>
<p>Wichtig für delete ist, dass zur kompilierungszeit klar ist von welchem typ der übergebene Zeiger ist. Wenn du also z.B. zur Laufzeit ein Objekt aus einer library instanzierst, muss die library eine delete-funktion exportieren, da delete mit einem basis-klassen zeiger, hinter dem aber eine abgeleitete Klasse steckt, Mist baut.</p>
</blockquote>
<p>EDIT:</p>
<p>Du willst also sagen das folgendes &quot;mist&quot; ist? Oder versteh ich da was falsch?</p>
<pre><code class="language-cpp">class base {};

class derived : public base {};

int main() {
  base *obj = new derived;

  delete obj;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1195626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195626</guid><dc:creator><![CDATA[Konrad]]></dc:creator><pubDate>Wed, 20 Dec 2006 19:49:19 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Wed, 20 Dec 2006 19:59:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Erzeuger.loescheObjekt(pObjekt);
</code></pre>
<p>Was ist denn das fürn Mist?<br />
Dann kann ich auch direkt nen delete aufrufen...<br />
Also ich würd ein</p>
<pre><code class="language-cpp">std::auto_ptr&lt;Objekt*&gt; erzeugeObjekt(string Name);
</code></pre>
<p>daraus machen, wie Arschi gesagt hat.</p>
<p>Je nach Verwendung auch ein shared_ptr (Gruß an CStoll <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/1195633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195633</guid><dc:creator><![CDATA[*Cpp-Anfänger* 0]]></dc:creator><pubDate>Wed, 20 Dec 2006 19:59:24 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Thu, 21 Dec 2006 07:23:56 GMT]]></title><description><![CDATA[<p>Generell mußt du unterscheiden zwischen &quot;Erzeuger&quot; und &quot;Besitzer&quot; - und klar dokumentieren, wer dafür zuständig ist (in deinem Beispiel ist main() der Besitzer, muß also auch das Objekt löschen - umgekehrt könnte man die Erzeuger-Klasse auch soweit aufbohren, daß sie den Besitz behält und sich auch irgendwann um die Aufräumarbeiten kümmert).</p>
<p>Aber die beste Möglichkeit dürften wohl die erwähnten Smart-Pointer sein, um die Aufräumarbeiten zu koordinieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195821</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 21 Dec 2006 07:23:56 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Thu, 21 Dec 2006 09:47:47 GMT]]></title><description><![CDATA[<p><em>Cpp-Anfänger</em> schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Erzeuger.loescheObjekt(pObjekt);
</code></pre>
<p>Was ist denn das fürn Mist?<br />
Dann kann ich auch direkt nen delete aufrufen...<br />
Also ich würd ein</p>
<pre><code class="language-cpp">std::auto_ptr&lt;Objekt*&gt; erzeugeObjekt(string Name);
</code></pre>
<p>daraus machen, wie Arschi gesagt hat.</p>
<p>Je nach Verwendung auch ein shared_ptr (Gruß an CStoll <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>
</blockquote>
<p>Das Problem ist, das ein Aufrufer nicht wissen kann, was eine erzeuge()-Funktion alles macht. Vielleicht allokiert er externe Ressourcen und bindet sie an das zurückgegebene Objekt ... und die muß er hinterher wieder freigeben.<br />
Oder die Daten werden in einer DB abgelegt (und auch dort gelöscht). Oder ...</p>
<p>Für den hier erwähnten trivialen Fall (in dem tatsächlich ein delete (sei es manuelle oder per auto_ptr) reichte) würde ja wohl auch kaum jemand einen externen Erzeuger bauen, oder ?</p>
<p>Ich stimme jedenfalls Leberknechts Vorschlag zu: Bietet eine API eine &quot;Quelle&quot; an, sollte sie tunlichst auch eine &quot;Senke&quot; anbieten.<br />
Noch lieber würde ich allerdings auf &quot;Erzeuger/Vernichter&quot; verzichten...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195919</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 21 Dec 2006 09:47:47 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Thu, 21 Dec 2006 10:23:14 GMT]]></title><description><![CDATA[<blockquote>
<p>Das Problem ist, das ein Aufrufer nicht wissen kann, was eine erzeuge()-Funktion alles macht. Vielleicht allokiert er externe Ressourcen und bindet sie an das zurückgegebene Objekt ... und die muß er hinterher wieder freigeben.<br />
Oder die Daten werden in einer DB abgelegt (und auch dort gelöscht). Oder ...</p>
</blockquote>
<p>Dafür ist dann ein Destruktor zuständig. Notfalls gebe ich ein Proxyobjekt zurück, wenn ich ressourcen binde, wo ich den Operator-&gt; überlade. Sowas wie Erzeuger.loescheObjekt(pObjekt) brauche ich in C++ ganz sicher nicht. Einfach mal in &quot;Modernes C++ Design&quot; unter Proxy-Objekt nachschauen. Kann man zumindest die Idee &quot;klauen&quot;. <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/1195951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195951</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 21 Dec 2006 10:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Thu, 21 Dec 2006 10:33:05 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Dafür ist dann ein Destruktor zuständig. Notfalls gebe ich ein Proxyobjekt zurück, wenn ich ressourcen binde, wo ich den Operator-&gt; überlade. Sowas wie Erzeuger.loescheObjekt(pObjekt) brauche ich in C++ ganz sicher nicht. Einfach mal in &quot;Modernes C++ Design&quot; unter Proxy-Objekt nachschauen. Kann man zumindest die Idee &quot;klauen&quot;. <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>
</blockquote>
<p>aber manchmal ist eine zigarre bloß eine zigarre.<br />
daß man passend zur quelle eine senke baut, ist schon ok. da kannste dann drumherum mit proxies spielen. das stört keinen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195957</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 21 Dec 2006 10:33:05 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Thu, 21 Dec 2006 10:55:42 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<blockquote>
<p>Das Problem ist, das ein Aufrufer nicht wissen kann, was eine erzeuge()-Funktion alles macht. Vielleicht allokiert er externe Ressourcen und bindet sie an das zurückgegebene Objekt ... und die muß er hinterher wieder freigeben.<br />
Oder die Daten werden in einer DB abgelegt (und auch dort gelöscht). Oder ...</p>
</blockquote>
<p>Dafür ist dann ein Destruktor zuständig. Notfalls gebe ich ein Proxyobjekt zurück, wenn ich ressourcen binde, wo ich den Operator-&gt; überlade. Sowas wie Erzeuger.loescheObjekt(pObjekt) brauche ich in C++ ganz sicher nicht. Einfach mal in &quot;Modernes C++ Design&quot; unter Proxy-Objekt nachschauen. Kann man zumindest die Idee &quot;klauen&quot;. <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>
</blockquote>
<p>wie ich schon sage:<br />
Erste Wahl ist, dass man ohne Erzeuger/Vernichter auskommt - und genau das ist der Fall, wenn man die Funktionalität sinnvoll in die Klasse reinprogrammieren kann (Ctor/DTor).</p>
<p>WENN man aber nicht darum herumkommt, Erzeuger/Vernichter zu nutzen, sollte man ein Objekt nicht einfach deleten (als Nutzer) bzw. einen geeigneten Vernichter zur Verfügung stellen (als Implementierer).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195980</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 21 Dec 2006 10:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to [Erzeuger] das alte Problem: Wer räumt auf? on Fri, 22 Dec 2006 11:01:19 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>wie ich schon sage:<br />
Erste Wahl ist, dass man ohne Erzeuger/Vernichter auskommt - und genau das ist der Fall, wenn man die Funktionalität sinnvoll in die Klasse reinprogrammieren kann (Ctor/DTor).</p>
</blockquote>
<p>Geht nicht, wenn man ne Abstract Factory und für Polymorphismus wirds auch schwieriger.</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>WENN man aber nicht darum herumkommt, Erzeuger/Vernichter zu nutzen, sollte man ein Objekt nicht einfach deleten (als Nutzer) bzw. einen geeigneten Vernichter zur Verfügung stellen (als Implementierer).</p>
</blockquote>
<p>Leuchtet ein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196556</guid><dc:creator><![CDATA[Ja&#x2F;Nein]]></dc:creator><pubDate>Fri, 22 Dec 2006 11:01:19 GMT</pubDate></item></channel></rss>