<?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[enum iterieren]]></title><description><![CDATA[<p>Naja ich hab da gerade ein Problem, ich möchte ein enum iterieren ohne auf .NET Funktionen zugreifen zu müssen.</p>
<p>ich habe z.B. folgendes enum</p>
<pre><code class="language-cpp">enum Types:uint32 
{
    TYPE1 = 0xC83A99CB,
    TYPE2 = 0xA430067C,
    TYPE3 = 0x80D1ACFF
};
</code></pre>
<p>das ganze ding befindet sich in einer statischen klasse.</p>
<p>nur leider müsste ich das enum iterieren und sämtliche werte abrufen die dort definiert sind (quasi for each).<br />
Mein Bekannter meinte ja das dies nicht möglich wäre aber ich brauche ein werte feld welches während der compilierung initialisiert wird und seperierbar ist.</p>
<p>ich habe mitlerweile schon fast das enum aufgegeben weil einfach nichts funktioniert so wie ich es bräuchte.<br />
hab operatoren versucht für das enum festzulegen ... ohne erfolg<br />
hab versucht eine template klasse wie z.B. map drüberzulegen ... ohne erfolg<br />
hab versucht zur laufzeit den enumtyp auf ein array umzulagern per calloc etc. ... ohne erfolg</p>
<p>mit struct + array geht es auch nicht da diese erst beim constructor aufruf initialisiert werden</p>
<p>vectoren ebenso glaube ich zumindest</p>
<p>gibt es noch eine andere möglichkeit? ich bin total fertig und hab 4 Stunden an den Problem gesessen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>bevor ich es vergesse an den uint32 seht ihr bestimmt das es nicht sinnvoll ist hier einen max und min wert festzulegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197013/enum-iterieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 01:50:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197013.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Nov 2007 17:44:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 17:48:48 GMT]]></title><description><![CDATA[<p>Naja ich hab da gerade ein Problem, ich möchte ein enum iterieren ohne auf .NET Funktionen zugreifen zu müssen.</p>
<p>ich habe z.B. folgendes enum</p>
<pre><code class="language-cpp">enum Types:uint32 
{
    TYPE1 = 0xC83A99CB,
    TYPE2 = 0xA430067C,
    TYPE3 = 0x80D1ACFF
};
</code></pre>
<p>das ganze ding befindet sich in einer statischen klasse.</p>
<p>nur leider müsste ich das enum iterieren und sämtliche werte abrufen die dort definiert sind (quasi for each).<br />
Mein Bekannter meinte ja das dies nicht möglich wäre aber ich brauche ein werte feld welches während der compilierung initialisiert wird und seperierbar ist.</p>
<p>ich habe mitlerweile schon fast das enum aufgegeben weil einfach nichts funktioniert so wie ich es bräuchte.<br />
hab operatoren versucht für das enum festzulegen ... ohne erfolg<br />
hab versucht eine template klasse wie z.B. map drüberzulegen ... ohne erfolg<br />
hab versucht zur laufzeit den enumtyp auf ein array umzulagern per calloc etc. ... ohne erfolg</p>
<p>mit struct + array geht es auch nicht da diese erst beim constructor aufruf initialisiert werden</p>
<p>vectoren ebenso glaube ich zumindest</p>
<p>gibt es noch eine andere möglichkeit? ich bin total fertig und hab 4 Stunden an den Problem gesessen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>bevor ich es vergesse an den uint32 seht ihr bestimmt das es nicht sinnvoll ist hier einen max und min wert festzulegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398207</guid><dc:creator><![CDATA[FoxDie]]></dc:creator><pubDate>Mon, 05 Nov 2007 17:48:48 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 17:59:30 GMT]]></title><description><![CDATA[<p>FoxDie schrieb:</p>
<blockquote>
<pre><code class="language-cpp">enum Types:uint32
</code></pre>
</blockquote>
<p>?SYNTAX ERROR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398219</guid><dc:creator><![CDATA[brotkasten]]></dc:creator><pubDate>Mon, 05 Nov 2007 17:59:30 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 18:05:34 GMT]]></title><description><![CDATA[<p>ja weil uint32 über ein makro definiert wird xD</p>
<pre><code class="language-cpp">#ifndef uint32
#define uint32 unsigned long int
#endif
</code></pre>
<p>dachte ja net das einer das beispiel compilen will Oo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398226</guid><dc:creator><![CDATA[FoxDie]]></dc:creator><pubDate>Mon, 05 Nov 2007 18:05:34 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 18:22:21 GMT]]></title><description><![CDATA[<p>also bei mir geht das ned.<br />
<a href="http://img258.imageshack.us/my.php?image=csfcpplc5.jpg" rel="nofollow">screenshot</a><br />
was mache ich fcalsh?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398236</guid><dc:creator><![CDATA[brotkasten]]></dc:creator><pubDate>Mon, 05 Nov 2007 18:22:21 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 18:28:17 GMT]]></title><description><![CDATA[<p>keine ahnung dein compiler ist ziemlich sparsam mit der fehlerbeschreibung, aber ich frag mich was du da compilen willst ... das ist ein einfaches enum und es geht so wie es gehen soll das hier ist keine frage nach debuging etc. das ist eine frage ganz im sinne von &quot;wie ist es realisierbar&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398241</guid><dc:creator><![CDATA[FoxDie]]></dc:creator><pubDate>Mon, 05 Nov 2007 18:28:17 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 18:30:19 GMT]]></title><description><![CDATA[<p>so schon versucht?</p>
<pre><code class="language-cpp">Types operator++(Type&amp; v) // prefix ++
{
    switch(v)
    {
        case TYPE1: return v=TYPE2;
        case TYPE2: return v=TYPE3;
        case TYPE3: return v=TYPE1;
    }

    throw &quot;böser fehler&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1398244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398244</guid><dc:creator><![CDATA[wurstdose]]></dc:creator><pubDate>Mon, 05 Nov 2007 18:30:19 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 18:35:07 GMT]]></title><description><![CDATA[<p>ja das würde sicherlich gehen aber nimm mal an es gibt ca. 10 enums mit insgesamt über 500 werten und bitte sagt mir jetzt nicht &quot;das würde ich auslagern und zur initialisierung einlesen&quot; ... das sind alles namehashs und die müssen von anfang an da sein ohne großartig zig klassen ableiten zu müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398246</guid><dc:creator><![CDATA[FoxDie]]></dc:creator><pubDate>Mon, 05 Nov 2007 18:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 18:47:09 GMT]]></title><description><![CDATA[<p>das geht sicher noch n bissl eleganter, läuft aber letzten endes wahrscheinlich immer auf das gleiche raus. automagisch gehts leider ned.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398251</guid><dc:creator><![CDATA[wurstdose]]></dc:creator><pubDate>Mon, 05 Nov 2007 18:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 18:49:25 GMT]]></title><description><![CDATA[<p><a href="http://www.ddj.com/cpp/184403955" rel="nofollow">http://www.ddj.com/cpp/184403955</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398252</guid><dc:creator><![CDATA[käseschachtel]]></dc:creator><pubDate>Mon, 05 Nov 2007 18:49:25 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Mon, 05 Nov 2007 19:20:34 GMT]]></title><description><![CDATA[<p>oh käseschachtel das sieht gut aus, das könnte meine hintertür sein ich muss das nur noch durchlesen <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>Edit: Das ist ganz schön harter Tobac und selbst das beispiel lässt sich nicht compilen ... ich bin ziemlich verunsichert im bezug auf das ich das schaffe zu fixen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398261</guid><dc:creator><![CDATA[FoxDie]]></dc:creator><pubDate>Mon, 05 Nov 2007 19:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Tue, 06 Nov 2007 16:03:05 GMT]]></title><description><![CDATA[<p>Mit enum wird dein Vorhaben nicht funktionieren, selbst mit der Enum-Klasse müßtest du alle Variablen von Hand auflisten.<br />
Nimm doch einfach ein statisches konstantes Array:</p>
<pre><code class="language-cpp">static const int types[] =
{
  0xC83A99CB,
  0xA430067C,
  0x80D1ACFF
};
</code></pre>
<p>Oder mußt du in deinem Programm einzeln auf die enum-Variablen 'TYPE1'... mit Namen zugreifen?<br />
Dann könntest du dafür noch eine std::map verwenden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398778</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Tue, 06 Nov 2007 16:03:05 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Wed, 07 Nov 2007 13:12:10 GMT]]></title><description><![CDATA[<p>ich hab es nun mit einer statischen map in enum kombination realisiert, läuft so auch super <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>Ausserdem kann ich einen Array nicht in der klassendefinition initialisieren sonst meckert mich mein compiler voll weil der glaub alles was in der Klassendefinition steht auf den Heap verweisst und das dürfte nicht gut für große Datenmengen sein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399140</guid><dc:creator><![CDATA[FoxDie]]></dc:creator><pubDate>Wed, 07 Nov 2007 13:12:10 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Wed, 07 Nov 2007 13:35:54 GMT]]></title><description><![CDATA[<p>Ein statisches Array ginge schon in einer Klasse, du mußt nur die Definition getrennt von der Deklaration in der Source-Datei angeben:</p>
<pre><code class="language-cpp">// .h
class X
{
  static const int array[100]; // Größe entsprechend anpassen
};

// .cpp
const int X::array[100] = // static darf nicht mehr angegeben werden
{
  0xC83A99CB,
  0xA430067C,
  0x80D1ACFF
  // ...
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1399161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399161</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Wed, 07 Nov 2007 13:35:54 GMT</pubDate></item><item><title><![CDATA[Reply to enum iterieren on Wed, 07 Nov 2007 13:56:20 GMT]]></title><description><![CDATA[<p>hmm dann empfehle mal was ist besser</p>
<p>z.B.</p>
<pre><code class="language-cpp">//.h

class xxx
{

public:
void xxx();

enum test:int {
TEST1 = 1,
TEST2,
TEST3
};

private:
static bool IsDefined;
static map&lt;int, uint32&gt; TestMap;

}

//.cpp
void xxx()
{
if(!IsDefined)
{
TestMap[TEST1] = 0xC83A99CB;
TestMap[TEST2] = 0xA430067C;
TestMap[TEST3] = 0x80D1ACFF;
XXX::IsDefined = true;
}
}
</code></pre>
<p>oder deine variante?<br />
Ich möchte speicherschonenden Zugriff bieten und dafür bietet sich meiner meinung nach map an <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1399176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399176</guid><dc:creator><![CDATA[FoxDie]]></dc:creator><pubDate>Wed, 07 Nov 2007 13:56:20 GMT</pubDate></item></channel></rss>