<?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[Map von Unions verwalten]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich will eine Map von Unions verwalten. Hintergrund ist, dass ich möglichst wenig Speicher verbrauchen will und die Map je nach Gegebenheit mit dem einen oder dem anderen Datentyp arbeiten soll. Das Ganze sieht in etwa so aus:</p>
<pre><code>typedef enum { DOUBLE, INT32 } ValueType;

union Value
{
   int32_t i32;
   double d;
};

class MyMap : public std::map&lt;int, Value&gt;
{
   ...
   ValueType type;
};
</code></pre>
<p>Nun will ich auf der Struktur natürlich einige Funktionen implementieren. Unter anderem will ich den Operator [] überladen. Ich dachte, vllt. kann ich an der Stelle den auto-Typ nutzen und den Rückgabetyp mit decltype festlegen, so in der Art:</p>
<pre><code>inline auto&amp; operator[](const int&amp; id) {
iterator iter = lower_bound(id);
   if(type == INT32)
      return (iter-&gt;second).i32;
   else
      return (iter-&gt;second).d;
}
</code></pre>
<p>Natürlich bekomme ich eine Fehlermeldung:</p>
<pre><code>Fehler: Funktion »operator[]« verwendet Typspezifikation »auto« ohne späten Rückgabetypen
</code></pre>
<p>Nun wäre meine Frage, ob mein Unterfangen schon allgemein hoffnungslos ist? Oder ob ich es auf die ein oder andere Weise lösen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/313103/map-von-unions-verwalten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 07:49:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/313103.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Jan 2013 21:52:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Map von Unions verwalten on Mon, 21 Jan 2013 21:57:33 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich will eine Map von Unions verwalten. Hintergrund ist, dass ich möglichst wenig Speicher verbrauchen will und die Map je nach Gegebenheit mit dem einen oder dem anderen Datentyp arbeiten soll. Das Ganze sieht in etwa so aus:</p>
<pre><code>typedef enum { DOUBLE, INT32 } ValueType;

union Value
{
   int32_t i32;
   double d;
};

class MyMap : public std::map&lt;int, Value&gt;
{
   ...
   ValueType type;
};
</code></pre>
<p>Nun will ich auf der Struktur natürlich einige Funktionen implementieren. Unter anderem will ich den Operator [] überladen. Ich dachte, vllt. kann ich an der Stelle den auto-Typ nutzen und den Rückgabetyp mit decltype festlegen, so in der Art:</p>
<pre><code>inline auto&amp; operator[](const int&amp; id) {
iterator iter = lower_bound(id);
   if(type == INT32)
      return (iter-&gt;second).i32;
   else
      return (iter-&gt;second).d;
}
</code></pre>
<p>Natürlich bekomme ich eine Fehlermeldung:</p>
<pre><code>Fehler: Funktion »operator[]« verwendet Typspezifikation »auto« ohne späten Rückgabetypen
</code></pre>
<p>Nun wäre meine Frage, ob mein Unterfangen schon allgemein hoffnungslos ist? Oder ob ich es auf die ein oder andere Weise lösen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292063</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Mon, 21 Jan 2013 21:57:33 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Mon, 21 Jan 2013 22:08:23 GMT]]></title><description><![CDATA[<p>Gehen wir nun davon aus, das ginge, woher weiß der Client den Typ der einzelnen Elemente?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292067</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 21 Jan 2013 22:08:23 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Mon, 21 Jan 2013 22:20:32 GMT]]></title><description><![CDATA[<p>Was ich noch erwähnen wollte: Es ist generell eine eher fragwürdige Entscheidung, von einer STL-Container-Klasse abzuleiten, da sie keine virtuellen Destruktoren haben und Du daher möglicherweise Ressourcen-Leaks in Kauf nimmst, falls mit Basisklassenzeigern gearbeitet wird. Mir fällt es aber schwer, überzeugende Argumente gegen die Meinung &quot;ich weiß ja, dass die Klasse so gedacht&quot; ist vorzubringen. Vielleicht kann ja jemand aushelfen oder es zieht einfach die Erwähnung von Murphys Gesetz.<br />
Du kannst natürlich privat ableiten, aber dann ist der Vorteil der Ableitung (nämlich die Schnittstelle für lau mitzunehmen) auch dahin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292070</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 21 Jan 2013 22:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Mon, 21 Jan 2013 23:37:17 GMT]]></title><description><![CDATA[<p>Decimad schrieb:</p>
<blockquote>
<p>Vielleicht kann ja jemand aushelfen</p>
</blockquote>
<p>Dass STL-Container nicht zur Vererbung konzipiert sind, sollte eigentlich schon reichen.</p>
<p>Ansonsten könnte man sagen, dass man zusätzliche Funktionalität ebenso gut als freie Funktionen implementieren kann. Das hat den Vorteil, dass man keine neuen Container-Klassen definieren muss, und auch andere Programmieren die Anwendung verstehen (hingegen müssen sie <code>MyMap</code> erst mal kennen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292080</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 21 Jan 2013 23:37:17 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Mon, 21 Jan 2013 23:58:37 GMT]]></title><description><![CDATA[<p>Decimad schrieb:</p>
<blockquote>
<p>Gehen wir nun davon aus, das ginge, woher weiß der Client den Typ der einzelnen Elemente?</p>
</blockquote>
<p>Naja, der Nutzer könnte halt vorher per Hilfsfunktion erfragen, welche Typ in der Map gespeichert wird. Der Compiler weiß dies natürlich nicht. Die Frage ist deshalb, ob ich das grundsätzlich irgendwie realiseren kann. Per void-Pointer vielleicht, auch wenn das unschön ist.</p>
<blockquote>
<p>Dass STL-Container nicht zur Vererbung konzipiert sind, sollte eigentlich schon reichen.</p>
</blockquote>
<p>Ok, also eher den Container als Member halten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292081</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Mon, 21 Jan 2013 23:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 06:10:02 GMT]]></title><description><![CDATA[<p>Michamab schrieb:</p>
<blockquote>
<p>Ok, also eher den Container als Member halten?</p>
</blockquote>
<p>Ja, oder eben freie Funktionen einrichten, wenn du keine zusätzlichen Daten in der Klasse brauchst.</p>
<pre><code>Value&amp;       at(std::map&lt;int, Value&gt;&amp; map, int key);
const Value&amp; at(const std::map&lt;int, Value&gt;&amp; map, int key);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2292098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292098</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 22 Jan 2013 06:10:02 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 06:31:58 GMT]]></title><description><![CDATA[<p>Was hast du denn mit dieser Map vor, die 2 Datentypen innehat?<br />
Sag uns das mal, vielleicht gibt es da andere Möglichkeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292099</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 22 Jan 2013 06:31:58 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 15:25:32 GMT]]></title><description><![CDATA[<p>Naja, ich habe eine Schnittstelle, die eine assoziative Liste von Werten entgegen nimmt. Die Schlüssel sind immer gleich, aber die dazugehörigen Werte sind halt mal Floats und mal Integers. Da die Liste recht groß sein kann, will ich die Map halt nicht ständig kopieren, sondern nur den Wertebereich ändern. Deshalb dachte ich erst an eine Map von Unions, so dass ich nur einmal Speicher allokieren muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292326</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Tue, 22 Jan 2013 15:25:32 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 15:32:44 GMT]]></title><description><![CDATA[<p>Das heißt, du möchtest an jeglicher Stelle, an der die Attribute benötigt werden, überprüfen und je nachdem ob heute mal Integer angesagt ist oder Float eigene Codepfade haben?</p>
<p>Ich kann gerade einfach nicht nachvollziehen wie sich der Wertetyp von ein- und derselben Eigenschaft ändert.</p>
<p>Und zum anderen können sich auch floating-point werte u.U. dafür eignen, die integer-werte zu speichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292329</guid><dc:creator><![CDATA[Heute mal Float]]></dc:creator><pubDate>Tue, 22 Jan 2013 15:32:44 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 16:14:14 GMT]]></title><description><![CDATA[<p>Ja, es geht ja jetzt hier nicht nur um Float und Integer, sondern eventuell auch um Double etc. Und ja, hinter der Schnittstelle stecken dann verschiedene Codepfade für die verschiedenen Wertebereiche. Die Liste ist halt eventuell ziemlich lang und deshalb soll sie nicht komplett &quot;neu gebaut&quot; werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292357</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Tue, 22 Jan 2013 16:14:14 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 16:20:58 GMT]]></title><description><![CDATA[<p>Also in etwa so:</p>
<pre><code class="language-cpp">void mein_algo()
{

   typ = fiktiv.get_typ(&quot;bla&quot;);
   switch( typ ){
      case TYP1: break;
      case TYP2: break;
      case TYP3: break;
      case TYP4: break;
      case TYP5: break;
      case TYP6: break;
      default:
         throw std::runtime_error( &quot;Fuer diesen Typ wurde leider der Algorithmus \&quot;mein_algo\&quot; noch nicht erweitert&quot; );
   }
}
</code></pre>
<p>oder etwas ähnliches?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292366</guid><dc:creator><![CDATA[Int ist das neue Float]]></dc:creator><pubDate>Tue, 22 Jan 2013 16:20:58 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 16:48:40 GMT]]></title><description><![CDATA[<p>Ja so in der Art soll das laufen:</p>
<pre><code>void tueWas(int typ, MyMap &amp;map)
{
   switch(typ) {
   case 0: ... break; // hier brauche ich Integer-Werte in der Map
   case 1: ... break; // hier brauche ich Float-Werte in der Map
   case 2: ... break; // hier brauche ich wieder Integer-Werte
   default: ...
   }
}
</code></pre>
<p>So soll das ungefährt von Nutzerseite laufen</p>
<pre><code>MyMap verdammtGrosseMap(); // Speichert per default Integer
verdammtGrosseMap[KEY_1] = 3;
...
verdammtGrosseMap[KEY_X] = 8;
tueWas(MODE1, verdammtGrosseMap);
verdammtGrosseMap.speichereJetztFloat();
verdammtGrosseMap[KEY_1] = 3.5;
...
verdammtGrosseMap[KEY_X] = 10.4
tueWas(MODE2, verdammtGrosseMap)
...
</code></pre>
<p>Ich will halt irgendwie vermeiden, dass ich die Map ständige neu konstruieren muss. Für Anregungen bin ich dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292375</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Tue, 22 Jan 2013 16:48:40 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 17:05:56 GMT]]></title><description><![CDATA[<p>Also bei n möglichen Typen musst du jeden einzelnen der m Algorithmen n-mal implementieren. Das kann es doch nicht sein, was du willst?<br />
Würde es vielleicht helfen, einfach alle Variablen als double abzuspeichern? Dann hast du auch Integer bis +-2^53-1 totgeschlagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292383</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 22 Jan 2013 17:05:56 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Tue, 22 Jan 2013 17:10:31 GMT]]></title><description><![CDATA[<p>Also werden in der Map zu einem Zeitpunkt immer die gleichen Wert-Typen gespeichert?<br />
Jetzt steige ich noch weniger durch. Aber vielleicht willst du die Funktion einfach nur über den Werte-Typ der Map templatisieren?</p>
<p>Edit: nee, das ist es auch nicht. Kannst du einen einfachen realistischen Use-Case aufzeigen, bei dem man mal sieht, wozu das Typ-Rumgeschiebe dienen soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292384</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 22 Jan 2013 17:10:31 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Wed, 23 Jan 2013 08:05:07 GMT]]></title><description><![CDATA[<p>Int ist das neue Float schrieb:</p>
<blockquote>
<p>Also in etwa so:</p>
<pre><code class="language-cpp">void mein_algo()
{

   typ = fiktiv.get_typ(&quot;bla&quot;);
   switch( typ ){
      case TYP1: break;
      case TYP2: break;
      case TYP3: break;
      case TYP4: break;
      case TYP5: break;
      case TYP6: break;
      default:
         throw std::runtime_error( &quot;Fuer diesen Typ wurde leider der Algorithmus \&quot;mein_algo\&quot; noch nicht erweitert&quot; );
   }
}
</code></pre>
<p>oder etwas ähnliches?</p>
</blockquote>
<p>Und genau sowas widerspricht jeglichen Paradigmen oder Code Standards.<br />
- Du hast Redundanzen an sehr vielen Stellen<br />
- Ok, Magic Numbers hast du nicht direkt, aber das hast du in Konstanten ausgelagert<br />
- du betreibst meiner Meinung nach Premature Optimizing. Zum einen sollte es auf dem Level egal sein, ob int's oder floats/doubles gespeichert werden. Und zum anderen, falls du trifftige Gründe hast, dass du die absolute Genauigkeit von int brauchst, dann solltest du es auch nutzen. Aber da wird es sicherlich eine bessere Möglichkeit geben als Datentypen in einer Map zu mixen.</p>
<p>Was hast Sone so schön in seinem Anhängsel stehen:</p>
<p>Sone schrieb:</p>
<blockquote>
<p>Du möchtest Problem X mit Möglichkeit Y lösen. Aber anstatt nach X zu fragen, fragst und beharrst du auf Y.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2292551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292551</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 23 Jan 2013 08:05:07 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Wed, 23 Jan 2013 14:54:37 GMT]]></title><description><![CDATA[<p>Decimad schrieb:</p>
<blockquote>
<p>Also werden in der Map zu einem Zeitpunkt immer die gleichen Wert-Typen gespeichert?<br />
Jetzt steige ich noch weniger durch. Aber vielleicht willst du die Funktion einfach nur über den Werte-Typ der Map templatisieren?</p>
<p>Edit: nee, das ist es auch nicht. Kannst du einen einfachen realistischen Use-Case aufzeigen, bei dem man mal sieht, wozu das Typ-Rumgeschiebe dienen soll?</p>
</blockquote>
<blockquote>
<p>Also bei n möglichen Typen musst du jeden einzelnen der m Algorithmen n-mal implementieren. Das kann es doch nicht sein, was du willst?<br />
Würde es vielleicht helfen, einfach alle Variablen als double abzuspeichern? Dann hast du auch Integer bis +-2^53-1 totgeschlagen.</p>
</blockquote>
<p>Genau, meine ursprüngliche Idee war, dass in der Map zu einem Zeitpunkt immer nur Werte eines Typs gespeichert sind, weil der Typenwechsel eher selten stattfindet. Dieser Punkt ist mir allerdings nicht so wichtig. Ich könnte mir auch vorstellen, dass Werte verschiedener Typen zum selben Zeitpunkt einem Key zugeordnet sind, also eine Art Tabelle. Wichtig ist mir halt, dass die Struktur möglicht speichereffizient ist.</p>
<p>Bzgl. der Anwendung ist zu sagen, dass keine redundanten Algorithmen für die jeweiligen Typen implementiert sind. Unter dem Interface sind einige Protokolle implementiert, die verschiedene Datentypen für verschiedene Eigenschaften entgegennehmen. Der Key in der Map definiert eine Empfänger-Instanz. Die Map wird dann durchiteriert und der jeweilige Wert an alle Empfänger bildlich gesprochen &quot;verschickt&quot;. Das dort halt mal double-Werte und mal Integer-Werte genutzt werden, entzieht sich meinem Einfluss.</p>
<p>Nun ist halt der Punkt, dass ich in der Regel immer nur die selbe Menge von Empfängern sehr häufig hintereinander anspreche. Z.B. will ich eine Eigenschaft manipulieren, die ein Integer-Werte entgegennimmt. Dann könnte es passieren, dass ich eine Eigenschaft manipuliere, welche einen Double-Wert entgegennimmt. Wie oben schon erwähnt, will ich meine Liste von Empfängern nicht neu instanziieren, sondern nur einen anderen Wertebereich nutzen.</p>
<p>Mag durchaus sein, dass meine Herangehensweise ein Irrweg ist. Aber einfach alle Daten im größtmöglichen Datentyp zu speichern ist leider keine Option, weil nicht klar ist, ob dieser Datentyp überhaupt benötigt wird und der zusätzliche Speicherverbrauch vermieden werden soll.</p>
<p>Ich hoffe klingt jetzt nicht alzu verwirrend. Ich bin über jede Anregung dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292644</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Wed, 23 Jan 2013 14:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Wed, 23 Jan 2013 16:17:21 GMT]]></title><description><![CDATA[<p>Hrmmm, du möchtes also eigentlich heterogene Nachrichten an durch Strings idetinfizierbare Empfänger schicken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292699</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 23 Jan 2013 16:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Wed, 23 Jan 2013 16:27:59 GMT]]></title><description><![CDATA[<p>Decimad schrieb:</p>
<blockquote>
<p>Hrmmm, du möchtes also eigentlich heterogene Nachrichten an durch Strings idetinfizierbare Empfänger schicken?</p>
</blockquote>
<p>Genau, allerdings entzieht sich das Interface, über das ich die Nachrichten verschicke, meinem Einfluss. Manchmal werden dort halt Gleitkommazahlen erwartet, manchmal Integer-Werte, je nachdem welche Eigenschaft manipuliert wird. Da ich aber häufig den Fall habe, dass die für die selbe Menge von Empfängern mehrere Eigenschaften manipulieren will, brauch ich eine Datenstruktur, die dies handhabbar macht. Sprich, die X Keys mal auf Integer-Werte, mal auf Double-Werte, abbildet, ohne diese Map jeweils neu zu instanziieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292702</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Wed, 23 Jan 2013 16:27:59 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Wed, 23 Jan 2013 16:52:12 GMT]]></title><description><![CDATA[<p>Wer bestimmt denn dann das Interface? Irgendjemand muss sich doch miteinander unterhalten und die sollten doch auch die gleiche Sprache sprechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292707</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 23 Jan 2013 16:52:12 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Thu, 24 Jan 2013 14:17:40 GMT]]></title><description><![CDATA[<p>Naja, das ist halt eine API, mit der ich mich unterhalte. Auf diese habe ich wie gesagt keinen Einfluss. Nun will ich sie clever kapseln, und dafür benötige ich eben die benannte Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2293024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2293024</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Thu, 24 Jan 2013 14:17:40 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Thu, 24 Jan 2013 14:31:41 GMT]]></title><description><![CDATA[<p>Du musst verzeihen, wenn ich da halt so rumstochere, aber mir kommt schon alleine die Idee, Nachrichten in einer Map vorzuhalten, dann auch noch von unterschiedlichem Typ, irgendwie komisch vor. Wie sieht denn die API grob aus? Wenn du keine Lust hast, einfach die API zu benennen, könntest du ja ein paar Prototypen zeigen mit etwas generischer Semantik, dass man sich da einmal einen Reim drauf machen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2293029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2293029</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 24 Jan 2013 14:31:41 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Thu, 24 Jan 2013 14:44:20 GMT]]></title><description><![CDATA[<p>Naja, ich habe das ganze schon etwas vereinfacht, deshalb will ich hier nicht die Details ausrollen. Aber im Grunde sieht das Ganze so aus:</p>
<pre><code>typedef enum { A, B, C, ... } Empfaenger;

sendFoo(Empfaenger empfaenger, double d);
sendBar(Empfaenger empfaenger, int i);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2293032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2293032</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Thu, 24 Jan 2013 14:44:20 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Thu, 24 Jan 2013 14:56:49 GMT]]></title><description><![CDATA[<p>Okay, und warum musst Du nun die Nachrichten zwischenspeichern, statt sie direkt zu versenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2293036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2293036</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 24 Jan 2013 14:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Map von Unions verwalten on Thu, 24 Jan 2013 17:10:21 GMT]]></title><description><![CDATA[<p>Naja, ich will diese API halt aus diversen Gründen kapseln. Das entsprechende Interface soll halt so gestaltet sein, dass es &quot;Listen&quot; von Werten entgegennimmt, da die Werte von einander abhängig sind und nicht für jede Übertragung ein einzelner Funktionsaufruf erfolgen soll. Wie gesagt, die Listen können auch recht groß werden und sollen deshalb einfach durch-iteriert werden. An dieser Stelle brauche ich halt die entsprechende Datenstruktur.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2293077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2293077</guid><dc:creator><![CDATA[Michamab]]></dc:creator><pubDate>Thu, 24 Jan 2013 17:10:21 GMT</pubDate></item></channel></rss>