<?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[Design einer Bibliothek]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>ich möchte gerne den ganzen Code, den ich in den letzten Monaten so geschrieben habe, etwas sauber in eine Bibliothek bzw. viele kleine Teilbibliotheken verpacken.</p>
<p>Es handelt sich um eine Bib für Bildverarbeitungsalgorithmen und ich würde gerne eure Meinung zum Aufbau erfahren.</p>
<p>Also im Endeffekt habe ich viele kleine Module, wie zum Beispiel <strong>morph</strong> (morphologische Operatoren), <strong>video</strong> (Videos ein- und auslesen) oder <strong>interpolation</strong> (Interpolationsalgorithmen). Diese Teile möchte ich gerne in getrennten libs haben (libmorph.a, libvideo.a, libinterpolation.a).</p>
<p>Die Frage, die sich mir stellt, sind zum Beispiel namespaces: Eigentlich hätte ich gerne alle Module in einem namespace <strong>cvl</strong>. Wenn ich aber getrennt an den Modulen arbeite, kann es ja durch Unachtsamkeit passieren, dass ich zum Beispiel zwei Funktionen mit gleicher Signatur in den Teilprojekten habe, die sich getrennt übersetzen lassen, wenn ich aber in einem neuen Projekt beide Libs benutze, bekäme ich Probleme.</p>
<p>Wenn ich aber keine namespaces benutze, bräuchte ich eindeutige Klassenbezeichner. Dann habe ich aber wieder das Problem, dass die morphologischen Operatoren zum Beispiel in keiner Klasse liegen, weil das meiner Ansicht nach Overkill wäre.</p>
<p>Also alles in allem wüsste ich gerne, wie ihr das aufbauen würdet. Hoffe, ich habe mein Problem so dargestellt, dass man da durchblickt. <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>Viele Grüße, mbu.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/216345/design-einer-bibliothek</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 10:51:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/216345.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Jun 2008 06:51:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 06:52:30 GMT]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>ich möchte gerne den ganzen Code, den ich in den letzten Monaten so geschrieben habe, etwas sauber in eine Bibliothek bzw. viele kleine Teilbibliotheken verpacken.</p>
<p>Es handelt sich um eine Bib für Bildverarbeitungsalgorithmen und ich würde gerne eure Meinung zum Aufbau erfahren.</p>
<p>Also im Endeffekt habe ich viele kleine Module, wie zum Beispiel <strong>morph</strong> (morphologische Operatoren), <strong>video</strong> (Videos ein- und auslesen) oder <strong>interpolation</strong> (Interpolationsalgorithmen). Diese Teile möchte ich gerne in getrennten libs haben (libmorph.a, libvideo.a, libinterpolation.a).</p>
<p>Die Frage, die sich mir stellt, sind zum Beispiel namespaces: Eigentlich hätte ich gerne alle Module in einem namespace <strong>cvl</strong>. Wenn ich aber getrennt an den Modulen arbeite, kann es ja durch Unachtsamkeit passieren, dass ich zum Beispiel zwei Funktionen mit gleicher Signatur in den Teilprojekten habe, die sich getrennt übersetzen lassen, wenn ich aber in einem neuen Projekt beide Libs benutze, bekäme ich Probleme.</p>
<p>Wenn ich aber keine namespaces benutze, bräuchte ich eindeutige Klassenbezeichner. Dann habe ich aber wieder das Problem, dass die morphologischen Operatoren zum Beispiel in keiner Klasse liegen, weil das meiner Ansicht nach Overkill wäre.</p>
<p>Also alles in allem wüsste ich gerne, wie ihr das aufbauen würdet. Hoffe, ich habe mein Problem so dargestellt, dass man da durchblickt. <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>Viele Grüße, mbu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1533951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533951</guid><dc:creator><![CDATA[mbu]]></dc:creator><pubDate>Mon, 23 Jun 2008 06:52:30 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 08:00:53 GMT]]></title><description><![CDATA[<p>ich würd es auf jeden fall mit namespaces machen - und halt darauf achten, dass die fkt verschieden heißen bzw noch mal in namespaces unterteilen...</p>
<pre><code class="language-cpp">namespace my
  {
    namespace morph:
      { /* bla */ };
    namespace video:
      { };
  };
</code></pre>
<p>würd ich nich nur so machen, sondern mach ich so gar wirklich so ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1533978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533978</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 23 Jun 2008 08:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 10:32:08 GMT]]></title><description><![CDATA[<p>Ach siehste, das wusste ich gar nicht, dass man namespaces ineinander verschachteln kann. Das klingt wie ein ganz guter Ansatz.</p>
<p>Was haltet ihr von dem Problem mit den Funktionen, die nicht in einer Klasse liegen. Ein Kollege meinte, er würde diese Funktionen trotzdem in eine Klasse packen (zum Beispiel Morph::erode oder Morph::dilate) und diese Funktionen/Methoden dann static machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1534067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534067</guid><dc:creator><![CDATA[mbu]]></dc:creator><pubDate>Mon, 23 Jun 2008 10:32:08 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 10:41:33 GMT]]></title><description><![CDATA[<p>Wenn ich fragen darf, wie machst du deine Bibliothek ?</p>
<p>Ich frage deswegen weil du sie mit C++ machen willst, und libs in C++ sind nicht Compilerunabhängig (oder ist dir das egal weil die Bibliothek sowieso nur du verwendest und sonst niemand) ?</p>
<p>Bin noch Anfänger in diesem Thema, und würde auch gern eine Bibliothek in C++ schreiben (mit Klassen), da hab ich erfahren das ist keine gute Idee.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1534072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534072</guid><dc:creator><![CDATA[Testtest]]></dc:creator><pubDate>Mon, 23 Jun 2008 10:41:33 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 13:56:03 GMT]]></title><description><![CDATA[<p>Ich schreibe die Bibliothek in C++ (deswegen dieses Forum und die Erwähnung von Klassen <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="😃"
    /> ). Wieso sollte das nicht unabhängig vom Compiler sein? Sollte doch kein Problem sein, wenn ich versuche, mich an den C++-Standard zu halten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1534176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534176</guid><dc:creator><![CDATA[mbu]]></dc:creator><pubDate>Mon, 23 Jun 2008 13:56:03 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 13:59:34 GMT]]></title><description><![CDATA[<p>Der C++-Standard definiert keine Binärformate.</p>
<p>Siehe z.B. Boost, hier werden die Bibliotheken, die eine Übersetzung erfordern, für jeden Compiler (und tlw. dessen Version) separat übersetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1534180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534180</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 23 Jun 2008 13:59:34 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 16:02:59 GMT]]></title><description><![CDATA[<p>mbu schrieb:</p>
<blockquote>
<p>Ach siehste, das wusste ich gar nicht, dass man namespaces ineinander verschachteln kann. Das klingt wie ein ganz guter Ansatz.</p>
<p>Was haltet ihr von dem Problem mit den Funktionen, die nicht in einer Klasse liegen. Ein Kollege meinte, er würde diese Funktionen trotzdem in eine Klasse packen (zum Beispiel Morph::erode oder Morph::dilate) und diese Funktionen/Methoden dann static machen.</p>
</blockquote>
<p>Ich würde die Funktionen direkt in einen Namespace packen, wenn sie keine umfassende Klasse brauchen. Namespaces bieten einen logischen Zusammenhang; erst wenn ich bemerke, dass meine Funktionen gemeinsame Daten brauchen würd ich die in eine Klasse packen.<br />
Ich würde sogar so weit gehen, und so viele Funktionen wie möglich und sinnvoll außerhalb der Klassen haben. Dazu gibts einen netten Artikel: <a href="http://www.gotw.ca/gotw/084.htm" rel="nofollow">http://www.gotw.ca/gotw/084.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1534260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534260</guid><dc:creator><![CDATA[DerKuchen]]></dc:creator><pubDate>Mon, 23 Jun 2008 16:02:59 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 18:20:10 GMT]]></title><description><![CDATA[<p>mbu schrieb:</p>
<blockquote>
<p>Ich schreibe die Bibliothek in C++ (deswegen dieses Forum und die Erwähnung von Klassen <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="😃"
    /> ). Wieso sollte das nicht unabhängig vom Compiler sein? Sollte doch kein Problem sein, wenn ich versuche, mich an den C++-Standard zu halten?</p>
</blockquote>
<p><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="😃"
    /> Schon klar das es C++ ist <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="🙂"
    /> aber wie du 2 Posts ober mir lesen kannst ist es nicht compilerunabhängig, aber wenn nur du die Bibliothek verwendest ist es eigentlich egal (vorrausgesetzt du verwendest dann nur diesen Compiler für weitere Projekte mit der Bibliothek), wie gesagt, wollte nur fragen weil ich auch eine C++ lib schreiben möchte, und immer noch nach einem besseren Lösungsvorschlag suche, aber glaube da gibt es nichts (außer vielleicht COM aber damit kenne ich mich noch nicht aus).</p>
<p>schönen Abend noch und viel Erfolg bei deiner lib, auch wenn ich dir dazu nicht helfen kann <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/1534344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534344</guid><dc:creator><![CDATA[gastgast]]></dc:creator><pubDate>Mon, 23 Jun 2008 18:20:10 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Mon, 23 Jun 2008 19:45:01 GMT]]></title><description><![CDATA[<p>Wenn die Bibliothek im Source vorliegt kann man sie (sofern sie Standard-konform ist) ja einfach mit jedem Compiler übersetzen, dann passt auch das ABI (das &quot;Binärformat&quot;).<br />
Ansonsten macht man eben für alle grösseren Compiler eigene Binaries.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1534406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534406</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Jun 2008 19:45:01 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Tue, 24 Jun 2008 07:07:21 GMT]]></title><description><![CDATA[<p>Ok, jetzt raff ich das. Aber ich hab tatsächlich nicht vor, das Ding zu publizieren. Muss nur selber mit arbeiten die nächsten Jahre und will mir das Ganze so einfach wie möglich machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1534545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534545</guid><dc:creator><![CDATA[mbu]]></dc:creator><pubDate>Tue, 24 Jun 2008 07:07:21 GMT</pubDate></item><item><title><![CDATA[Reply to Design einer Bibliothek on Tue, 24 Jun 2008 10:56:25 GMT]]></title><description><![CDATA[<p>mbu schrieb:</p>
<blockquote>
<p>das Ganze so einfach wie möglich machen.</p>
</blockquote>
<p>dann speicher es einfach ab und include es - wie du das bei std::vector oder so auch machst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1534678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1534678</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 24 Jun 2008 10:56:25 GMT</pubDate></item></channel></rss>