<?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[intrusive programming?]]></title><description><![CDATA[<p>Ich bin in folgendem <a href="http://www.emarcus.org/papers/MPOOL2007-slides-marcus.pdf" rel="nofollow">Dokument</a> auf den Begriff &quot;intrusive&quot; gestossen. Übersetzt heißt es soviel wie aufdringlich. Aber was ist damit bzgl. der Programmierung gemeint?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197246/intrusive-programming</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 02:25:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197246.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Nov 2007 12:41:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to intrusive programming? on Thu, 08 Nov 2007 12:41:38 GMT]]></title><description><![CDATA[<p>Ich bin in folgendem <a href="http://www.emarcus.org/papers/MPOOL2007-slides-marcus.pdf" rel="nofollow">Dokument</a> auf den Begriff &quot;intrusive&quot; gestossen. Übersetzt heißt es soviel wie aufdringlich. Aber was ist damit bzgl. der Programmierung gemeint?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399721</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 08 Nov 2007 12:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Thu, 08 Nov 2007 12:46:12 GMT]]></title><description><![CDATA[<p>non-instrusive - systemunabhaengig, nicht in das System eingreifend</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399725</guid><dc:creator><![CDATA[Ajaw]]></dc:creator><pubDate>Thu, 08 Nov 2007 12:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Thu, 08 Nov 2007 12:53:56 GMT]]></title><description><![CDATA[<p>der Begriff wird oftmals im Zusammenhang mit Container gebraucht. Ein non-intrusive Container legt seine Daten zur Verwaltung des Containers außerhalb seiner Elemente ab. So beispielsweise alle STL-Container.</p>
<p>Bei einer Liste gibt es aber auch die Möglichkeit, den previous- und den next-container direkt im Objekt zu halten, das in der Liste drin ist. Das kann Vorteile haben, weil man beispielsweise wenn man schon einen Zeiger auf das Objekt hat auch direkt an der entsprechenden Position in der Liste ist und das Element zum Beispiel entfernen kann. Allerdings werden die Objekte halt durch den Container modifiziert. Daher eben der Begriff intrusive -- eingreifend, wie Ajaw schon gesagt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399731</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Thu, 08 Nov 2007 12:53:56 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Thu, 08 Nov 2007 15:03:50 GMT]]></title><description><![CDATA[<p>Jester schrieb:</p>
<blockquote>
<p>der Begriff wird oftmals im Zusammenhang mit Container gebraucht. Ein non-intrusive Container legt seine Daten zur Verwaltung des Containers außerhalb seiner Elemente ab. So beispielsweise alle STL-Container.</p>
</blockquote>
<p>Nenn mich klugscheisser, aber es ist ausserhalb der deklaration der elemente, nicht ausserhalb des instanzierten elements. <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>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26836">@Topic</a>:<br />
non-intrusive wird meist als saubere art empfunden, weil man dabei nicht in die bestehenden implementierungen eingreifft. sauber deswegen, weil man zum einen die element-deklarationen (also CFoo gegen CBar) tauschen kann, als auch neue kontainer anwenden kann ohne fuer jeden container-typen die objekte zu modifizieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399818</guid><dc:creator><![CDATA[rapso]]></dc:creator><pubDate>Thu, 08 Nov 2007 15:03:50 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Thu, 08 Nov 2007 15:29:00 GMT]]></title><description><![CDATA[<p>rapso schrieb:</p>
<blockquote>
<p>Jester schrieb:</p>
<blockquote>
<p>der Begriff wird oftmals im Zusammenhang mit Container gebraucht. Ein non-intrusive Container legt seine Daten zur Verwaltung des Containers außerhalb seiner Elemente ab. So beispielsweise alle STL-Container.</p>
</blockquote>
<p>Nenn mich klugscheisser, aber es ist ausserhalb der deklaration der elemente, nicht ausserhalb des instanzierten elements. <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>Den Einwand verstehe ich nicht. Wenn ich eine std::list&lt;Foobar&gt; anlege, dann werden die Daten zur Verwaltung der Liste außerhalb meiner Foobar-Objekte abgelegt. Diese verändern sich nicht, bloß weil sich die Struktur der Liste verändert. Das ist auch außerhalb der instanziierten Listenelemente. Aber vermutlich meintest du was anderes, oder?</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26836">@Topic</a>:<br />
non-intrusive wird meist als saubere art empfunden, weil man dabei nicht in die bestehenden implementierungen eingreifft.</p>
</blockquote>
<p>Ja, es hat ein bißchen diesen &quot;ist-sauber&quot;-touch. Andererseits kann man mit ner intrusive list tolle sachen machen, die man anders nicht hinkriegt. Besonders für komplexere Datenstrukturen kommt man häufig nur mit großem Speicheraufwand (und damit auch schlechterer Laufzeit) um eine intrusive Implementierung herum.</p>
<blockquote>
<p>sauber deswegen, weil man zum einen die element-deklarationen (also CFoo gegen CBar) tauschen kann, als auch neue kontainer anwenden kann ohne fuer jeden container-typen die objekte zu modifizieren.</p>
</blockquote>
<p>Naja, das stimmt ja so auch nicht ganz. std::vector ist zwar nicht intrusive, verlangt aber auch bestimmte Verhaltensweisen von den Objekten, die darin gespeichert werden können. Implementiert man diese zugegebenermaßen recht allgemeine Schnittstelle nicht richtig, dann funktioniert auch ein non-intrusive Container nicht mit den Elementen. Daher liegt für mich der Unterschied eher darin, wo die zur Verwaltung des Containers nötigen Daten liegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399838</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Thu, 08 Nov 2007 15:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Thu, 08 Nov 2007 16:07:25 GMT]]></title><description><![CDATA[<p>rapso schrieb:</p>
<blockquote>
<p>Nenn mich klugscheisser, aber es ist ausserhalb der deklaration der elemente, nicht ausserhalb des instanzierten elements. <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>Hm?</p>
<pre><code>+------+   +-------+   +------+
  | list |--&gt;| node  |--&gt;| data |
  +------+   | next* |   +------+
             | prev* |
             +-------+
</code></pre>
<p>v.</p>
<pre><code>+------+   +-------+
  | list |--&gt;| data  |
  +------+   | next* |
             | prev* |
             +-------+
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1399867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399867</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 08 Nov 2007 16:07:25 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Thu, 08 Nov 2007 21:39:10 GMT]]></title><description><![CDATA[<p>Jester schrieb:</p>
<blockquote>
<p>rapso schrieb:</p>
<blockquote>
<p>Jester schrieb:</p>
<blockquote>
<p>der Begriff wird oftmals im Zusammenhang mit Container gebraucht. Ein non-intrusive Container legt seine Daten zur Verwaltung des Containers außerhalb seiner Elemente ab. So beispielsweise alle STL-Container.</p>
</blockquote>
<p>Nenn mich klugscheisser, aber es ist ausserhalb der deklaration der elemente, nicht ausserhalb des instanzierten elements. <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>Den Einwand verstehe ich nicht. Wenn ich eine std::list&lt;Foobar&gt; anlege, dann werden die Daten zur Verwaltung der Liste außerhalb meiner Foobar-Objekte abgelegt. Diese verändern sich nicht, bloß weil sich die Struktur der Liste verändert. Das ist auch außerhalb der instanziierten Listenelemente. Aber vermutlich meintest du was anderes, oder?</p>
</blockquote>
<p>ich meine, dass man mit c++ auch konstrukte erstellen kann, bei denen die verlinkungspointer und das zu handlende element ein 'verschmolzenes' objekt sind. Die programmierung ist dann non-intrusive, das resultat ist aber als ob es 'intrusive' waere.<br />
non-intrusive verwendet man wegen der 'sauberkeit' im design. intrusive verwendet man wegen besserem laufzeitverhalten. beides zu nutzen ist da natuerlich die kroenung des ganzen <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>
<p>und bezueglich std::vector, ich denke es gibt wohl keinen container der ueberhaupt keine anforderungen an die verwalteten objekte setzt. dann steht man aber vor der entscheidung, ob man non-instrusive bleibt, oder ob man 'mal eben was einhackt'. *hehe*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400049</guid><dc:creator><![CDATA[rapso]]></dc:creator><pubDate>Thu, 08 Nov 2007 21:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Fri, 09 Nov 2007 06:45:56 GMT]]></title><description><![CDATA[<p>rapso schrieb:</p>
<blockquote>
<p>ich meine, dass man mit c++ auch konstrukte erstellen kann, bei denen die verlinkungspointer und das zu handlende element ein 'verschmolzenes' objekt sind. Die programmierung ist dann non-intrusive, das resultat ist aber als ob es 'intrusive' waere.</p>
</blockquote>
<p>Z.B.?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400110</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Fri, 09 Nov 2007 06:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Fri, 09 Nov 2007 11:53:31 GMT]]></title><description><![CDATA[<p>Ja, daran wäre ich auch interessiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400234</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Fri, 09 Nov 2007 11:53:31 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Fri, 09 Nov 2007 12:35:12 GMT]]></title><description><![CDATA[<p>Danke schon mal für die bisherigen Antworten und Diskussion. Dann weiß ich schon mal in welche Richtung das ganze gemeint ist.</p>
<p>Das Dokument geht übrigens auf Templates und Polymorphy ein und es wird das Zeil diskutiert, beides in einem vereinen zu können. Anscheinend mit den ConceptC++. Habs mir aber noch nicht richtig angeschaut.</p>
<p>Wen ein ausführlicheres Dokument dazu interessiert:<br />
<a href="http://www.emarcus.org/papers/MPOOL2007-marcus.pdf" rel="nofollow">http://www.emarcus.org/papers/MPOOL2007-marcus.pdf</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400268</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Fri, 09 Nov 2007 12:35:12 GMT</pubDate></item><item><title><![CDATA[Reply to intrusive programming? on Tue, 13 Nov 2007 05:54:12 GMT]]></title><description><![CDATA[<p>*bump*</p>
<p>Ich wäre immer noch an den C++-Insider-Tricks interessiert <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1402204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402204</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Tue, 13 Nov 2007 05:54:12 GMT</pubDate></item></channel></rss>