<?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 verdoppeln]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Funktion schreiben, die verschiedene Flags als <code>int</code> (oder <code>long</code> ) entgegennehmen kann; in etwa so: <code>void foo(int flags);</code><br />
Diese Flags wollen ja auch definiert sein... Dazu nehme ich eine Enumeration:</p>
<pre><code class="language-cpp">enum {
    FLAG_1 = 1,
    FLAG_2 = 2,
    FLAG_3 = 4,
    FLAG_4 = 8,
    // ...
};
</code></pre>
<p>Diese Flags können dann per |-operator verknüpft werden.<br />
Und nun: wenn sich bei den Flags irgendetwas ändert, muss ich immer sofort die ganze liste durchgehen, und die Zahlenwerte korrigieren (also immer das doppelte vom Vorgänger).</p>
<p>Gibt es nicht vielleicht eine enum-Variante, die die Werte ebenso verdoppelt speichert, ohne dass die Werte immer seperat eingegeben werden müssen?</p>
<p>Ist mein Ansatz für meine &quot;Flag-Funktion&quot; so überhaupt richtig, oder würdet ihr das anderst lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240519/enum-verdoppeln</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 22:54:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240519.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 May 2009 14:30:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 14:30:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Funktion schreiben, die verschiedene Flags als <code>int</code> (oder <code>long</code> ) entgegennehmen kann; in etwa so: <code>void foo(int flags);</code><br />
Diese Flags wollen ja auch definiert sein... Dazu nehme ich eine Enumeration:</p>
<pre><code class="language-cpp">enum {
    FLAG_1 = 1,
    FLAG_2 = 2,
    FLAG_3 = 4,
    FLAG_4 = 8,
    // ...
};
</code></pre>
<p>Diese Flags können dann per |-operator verknüpft werden.<br />
Und nun: wenn sich bei den Flags irgendetwas ändert, muss ich immer sofort die ganze liste durchgehen, und die Zahlenwerte korrigieren (also immer das doppelte vom Vorgänger).</p>
<p>Gibt es nicht vielleicht eine enum-Variante, die die Werte ebenso verdoppelt speichert, ohne dass die Werte immer seperat eingegeben werden müssen?</p>
<p>Ist mein Ansatz für meine &quot;Flag-Funktion&quot; so überhaupt richtig, oder würdet ihr das anderst lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707186</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 07 May 2009 14:30:00 GMT</pubDate></item><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 14:33:29 GMT]]></title><description><![CDATA[<p>Der Ansatz passt, das sieht in DirectX zB genauso aus, allerdings nutzt man dort eine unsigned Variable dafür. Beim enum denke ich nicht das es anders geht, du wirst wohl um das manuelle anpassen nicht drumherum kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707188</guid><dc:creator><![CDATA[Xebov]]></dc:creator><pubDate>Thu, 07 May 2009 14:33:29 GMT</pubDate></item><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 14:51:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>du könntest auch std::map verwenden</p>
<p>Dann kannst du in ner Schleife die Namen und die Werte hochzählen</p>
<p>Gruß Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707196</guid><dc:creator><![CDATA[varginator]]></dc:creator><pubDate>Thu, 07 May 2009 14:51:45 GMT</pubDate></item><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 15:04:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">enum {
    FLAG_1 = 1,
    FLAG_2 = FLAG_1*2,
    FLAG_3 = FLAG_2*2,
    FLAG_4 = FLAG_3*2,
    // ...
};
</code></pre>
<p>aber wozu? feste werte sind schon ok, denn flags ändern sich so selten, daß es sich vermutlich nicht lohnt, besondere sachen dafür zu erfinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707208</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 07 May 2009 15:04:43 GMT</pubDate></item><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 18:42:18 GMT]]></title><description><![CDATA[<p>OK danke <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="🙂"
    /><br />
dann mach ichs am besten manuell</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707407</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 07 May 2009 18:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 18:57:17 GMT]]></title><description><![CDATA[<p>[cpp]<br />
enum {<br />
FLAG_1 = 1 &lt;&lt; 0,<br />
FLAG_2 = 1 &lt;&lt; 1,<br />
FLAG_3 = 1 &lt;&lt; 2,<br />
FLAG_4 = 1 &lt;&lt; 3,<br />
// ...<br />
};</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707415</guid><dc:creator><![CDATA[.........]]></dc:creator><pubDate>Thu, 07 May 2009 18:57:17 GMT</pubDate></item><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 20:48:00 GMT]]></title><description><![CDATA[<p>......... schrieb:</p>
<blockquote>
<pre><code class="language-cpp">enum {
    FLAG_1 = 1 &lt;&lt; 0,
    FLAG_2 = 1 &lt;&lt; 1,
    FLAG_3 = 1 &lt;&lt; 2,
    FLAG_4 = 1 &lt;&lt; 3,
    // ...
};
</code></pre>
</blockquote>
<p>halte ich persönlich für etwas aufwendig^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707469</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 07 May 2009 20:48:00 GMT</pubDate></item><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 21:10:37 GMT]]></title><description><![CDATA[<p>daersc schrieb:</p>
<blockquote>
<p>......... schrieb:</p>
<blockquote>
<pre><code class="language-cpp">enum {
    FLAG_1 = 1 &lt;&lt; 0,
    FLAG_2 = 1 &lt;&lt; 1,
    FLAG_3 = 1 &lt;&lt; 2,
    FLAG_4 = 1 &lt;&lt; 3,
    // ...
};
</code></pre>
</blockquote>
<p>halte ich persönlich für etwas aufwendig^^</p>
</blockquote>
<p>ich finds schöner als den rest - _sehr_ viel schöner...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707479</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 07 May 2009 21:10:37 GMT</pubDate></item><item><title><![CDATA[Reply to enum verdoppeln on Thu, 07 May 2009 21:35:55 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>daersc schrieb:</p>
<blockquote>
<p>......... schrieb:</p>
<blockquote>
<pre><code class="language-cpp">enum {
    FLAG_1 = 1 &lt;&lt; 0,
    FLAG_2 = 1 &lt;&lt; 1,
    FLAG_3 = 1 &lt;&lt; 2,
    FLAG_4 = 1 &lt;&lt; 3,
    // ...
};
</code></pre>
</blockquote>
<p>halte ich persönlich für etwas aufwendig^^</p>
</blockquote>
<p>ich finds schöner als den rest - _sehr_ viel schöner...<br />
bb</p>
</blockquote>
<p>dann nehmen wir jetzt diese version. wobei ich hoffe, daß du nix gegen</p>
<pre><code class="language-cpp">enum {
    FLAG_1 = 1&lt;&lt;0,
    FLAG_2 = 1&lt;&lt;1,
    FLAG_3 = 1&lt;&lt;2,
    FLAG_4 = 1&lt;&lt;3,
    // ...
};
</code></pre>
<p>hast, das betont noch ein wenig, daß die werte 1&lt;&lt;3 und so atomar sind. hab den thread geerade verlegt, der das ausfühlich begründet, aber es hatte was mit scoping mit attention reduction und anti mental noise propagation zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707486</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 07 May 2009 21:35:55 GMT</pubDate></item></channel></rss>