<?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 - werte erfragen?!]]></title><description><![CDATA[<p>Gibt es eine Möglichkeit sämtliche Tags und intWerte eines Enum-Typs zu erhalten? In meinem speziellen Fall wird eine Enum an einer Stelle definiert und an diversen Stellen benutzt. Ich schreibe nun Tests unter anderem für Funktionen die diesen Enum benutzen.</p>
<p>Mein Test soll nun auch bei Änderung der Definition des Enum funktionieren. D.h. ich muss den Enum irgendwie &quot;auslesen&quot;, also alle Tags mit den zugeordneten Werten erfahren und entsprechende Tests machen. Zur Not würde auch reichen nur die Werte und nicht die Tags auszulesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/238663/enum-werte-erfragen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 22:33:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238663.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Apr 2009 08:35:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 08:35:25 GMT]]></title><description><![CDATA[<p>Gibt es eine Möglichkeit sämtliche Tags und intWerte eines Enum-Typs zu erhalten? In meinem speziellen Fall wird eine Enum an einer Stelle definiert und an diversen Stellen benutzt. Ich schreibe nun Tests unter anderem für Funktionen die diesen Enum benutzen.</p>
<p>Mein Test soll nun auch bei Änderung der Definition des Enum funktionieren. D.h. ich muss den Enum irgendwie &quot;auslesen&quot;, also alle Tags mit den zugeordneten Werten erfahren und entsprechende Tests machen. Zur Not würde auch reichen nur die Werte und nicht die Tags auszulesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695526</guid><dc:creator><![CDATA[dermoritz]]></dc:creator><pubDate>Tue, 14 Apr 2009 08:35:25 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 08:38:19 GMT]]></title><description><![CDATA[<p>an die tags und werte kommste nicht mehr ran.<br />
aber ich mach öfters enum Klaus {a,d,e,g,q,MAX_KLAUS} ... for(int i=0;i!=MAX_KLAUS;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695528</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 14 Apr 2009 08:38:19 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 08:39:50 GMT]]></title><description><![CDATA[<p>Oder führ parallel noch ein Array mit Name + Wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695529</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 14 Apr 2009 08:39:50 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 09:30:56 GMT]]></title><description><![CDATA[<p>vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695553</guid><dc:creator><![CDATA[dermoritz]]></dc:creator><pubDate>Tue, 14 Apr 2009 09:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 11:06:19 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Oder führ parallel noch ein Array mit Name + Wert.</p>
</blockquote>
<p>Besser eine std::map&lt;EnumName, std::string&gt;, denn Enums sind nicht zwangsläufig linear (oder positiv).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695598</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 14 Apr 2009 11:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 11:19:52 GMT]]></title><description><![CDATA[<p>Alternativ könnte dein Code auch die entsprechende Quellcode-Datei einlesen und das Enum parsen und daraus den Testcode generieren (du musst halt nicht nur die Labels, sondern auch die zugehörigen Integer-Werte ermitteln). Wenn du das schön machst ist das sicher die beste Methode, könnte ja ungefähr so aussehen:</p>
<pre><code class="language-cpp">void test_enum( const char* source_file, const char* enum_name, Callback cb );
</code></pre>
<p>Und für jeden Wert im Enum ruft test_enum dann das Callback-Objekt auf welches den eigentlichen Test-Code enthält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695611</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Tue, 14 Apr 2009 11:19:52 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 11:50:27 GMT]]></title><description><![CDATA[<p>Hab gerade mal ein wenig gegoogled und bin auf ein paar Vorschläge gestoßen, aber keiner derer schien mir sicher für den Fall von Wertesprüngen innerhalb des Enums oder eben negativen Werten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695645</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 14 Apr 2009 11:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 12:03:29 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Oder führ parallel noch ein Array mit Name + Wert.</p>
</blockquote>
<p>Besser eine std::map&lt;EnumName, std::string&gt;, denn Enums sind nicht zwangsläufig linear (oder positiv).</p>
</blockquote>
<p>Ich meinte eher sowas:</p>
<pre><code class="language-cpp">struct info
{
  const char* name; 
  int value;
};

// ...

info x[] = 
{
  { &quot;foo&quot;, 0 },
  { &quot;bar&quot;, 4 }

  // ...
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1695655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695655</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 14 Apr 2009 12:03:29 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 13:55:43 GMT]]></title><description><![CDATA[<p>Danke!<br />
da der code für den enum gegeben ist, scheint mir die Variante mit dem parsen des Source-Codes die sinnvollste zu sein?!<br />
Ich werd mir die Sache mal anschaun...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695756</guid><dc:creator><![CDATA[dermoritz]]></dc:creator><pubDate>Tue, 14 Apr 2009 13:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 14:29:19 GMT]]></title><description><![CDATA[<p>dermoritz schrieb:</p>
<blockquote>
<p>Danke!<br />
da der code für den enum gegeben ist, scheint mir die Variante mit dem parsen des Source-Codes die sinnvollste zu sein?!<br />
Ich werd mir die Sache mal anschaun...</p>
</blockquote>
<p>Es wäre natürlich von Vorteil, wenn du innerhalb der Dateien noch eine Art Versionsnummer hast damit du in test_enum prüfen kannst ob die Datei nicht verändert wurde seit das Testprogramm übersetzt wurde (das hat die gleiche Datei ja beim Kompilieren inkludiert/gelinkt und mein Vorschlag geht natürlich nur, wenn die Datei nicht nach dem Kompilieren geändert wurde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695779</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Tue, 14 Apr 2009 14:29:19 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 14:30:14 GMT]]></title><description><![CDATA[<p>Tippgeber schrieb:</p>
<blockquote>
<p>dermoritz schrieb:</p>
<blockquote>
<p>Danke!<br />
da der code für den enum gegeben ist, scheint mir die Variante mit dem parsen des Source-Codes die sinnvollste zu sein?!<br />
Ich werd mir die Sache mal anschaun...</p>
</blockquote>
<p>Es wäre natürlich von Vorteil, wenn du innerhalb der Dateien noch eine Art Versionsnummer hast damit du in test_enum prüfen kannst ob die Datei nicht verändert wurde seit das Testprogramm übersetzt wurde (das hat die gleiche Datei ja beim Kompilieren inkludiert/gelinkt und mein Vorschlag geht natürlich nur, <strong>wenn die Datei nicht nach dem Kompilieren geändert wurde</strong>).</p>
</blockquote>
<p>Genauer: wenn das Enum nach dem Kompilieren nicht geändert wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695780</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Tue, 14 Apr 2009 14:30:14 GMT</pubDate></item><item><title><![CDATA[Reply to enum - werte erfragen?! on Tue, 14 Apr 2009 14:41:52 GMT]]></title><description><![CDATA[<p>kann doch ins makefile rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695788</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 14 Apr 2009 14:41:52 GMT</pubDate></item></channel></rss>