<?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 class Problem]]></title><description><![CDATA[<p>Hi, ich habe meinen ganzen enums jetzt zu enum classes abgeändert und natürlich läuft das ganze jetzt nicht mehr. Z.B. folgender Code:</p>
<pre><code>enum class Color : int
{
	Black = 0,
    ...
	White = 15
};
</code></pre>
<pre><code>void MyFunction(Color color)
{
	if ((color &amp; ~Color::White) != Color::Black)
    ...
</code></pre>
<p>IntelliSense: expression must have integral or unscoped enum type<br />
error C2678: binary '~' : no operator found which takes a left-hand operand of type 'Color' (or there is no acceptable conversion)</p>
<p>Wie kann ich dieses Problem am besten lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303419/enum-class-problem</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 10:12:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303419.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 May 2012 15:14:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 15:14:26 GMT]]></title><description><![CDATA[<p>Hi, ich habe meinen ganzen enums jetzt zu enum classes abgeändert und natürlich läuft das ganze jetzt nicht mehr. Z.B. folgender Code:</p>
<pre><code>enum class Color : int
{
	Black = 0,
    ...
	White = 15
};
</code></pre>
<pre><code>void MyFunction(Color color)
{
	if ((color &amp; ~Color::White) != Color::Black)
    ...
</code></pre>
<p>IntelliSense: expression must have integral or unscoped enum type<br />
error C2678: binary '~' : no operator found which takes a left-hand operand of type 'Color' (or there is no acceptable conversion)</p>
<p>Wie kann ich dieses Problem am besten lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211102</guid><dc:creator><![CDATA[Enumerator]]></dc:creator><pubDate>Sun, 13 May 2012 15:14:26 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 15:31:48 GMT]]></title><description><![CDATA[<p>Indem du die Operatoren für dein enum definierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211113</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 13 May 2012 15:31:48 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 17:35:47 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Indem du die Operatoren für dein enum definierst.</p>
</blockquote>
<p>Er könnte aber auch explizit casten, wenn er sowieso schon auf Ganzzahl-basis damit rechnen will...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211135</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 13 May 2012 17:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 17:40:30 GMT]]></title><description><![CDATA[<p>Jo klar, mal eben im Code an jeder Stelle refactoren...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211136</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 13 May 2012 17:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 19:24:43 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Jo klar, mal eben im Code an jeder Stelle refactoren...</p>
</blockquote>
<p>Dann stellt sich die Frage, wozu dieser ganze &quot;streng-typisiertes enum&quot; quatsch (Edit) <strong>hier</strong> gut ist, wenn es eh nur Ärger bringt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211163</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 13 May 2012 19:24:43 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 19:19:05 GMT]]></title><description><![CDATA[<p>Denk doch mal nach du Depp <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211164</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 13 May 2012 19:19:05 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 19:21:46 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Jo klar, mal eben im Code an jeder Stelle refactoren...</p>
</blockquote>
<p>Für jedes popelige enum die ganzen Operatoren zu definieren ist aber auch nicht besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211165</guid><dc:creator><![CDATA[Enumerator2]]></dc:creator><pubDate>Sun, 13 May 2012 19:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 19:23:31 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Denk doch mal nach du Depp <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
</blockquote>
<p>Hab ich ja. Ich hab nachgedacht, was herausgefunden und es dann geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Es ist nicht überall besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211166</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 13 May 2012 19:23:31 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 20:02:15 GMT]]></title><description><![CDATA[<p>Enumerator2 schrieb:</p>
<blockquote>
<p>Für jedes popelige enum die ganzen Operatoren zu definieren ist aber auch nicht besser.</p>
</blockquote>
<p>Ist ja auch nicht so, als ob sich das durch ein simples Makro vereinfachen liese.</p>
<p>Hacker schrieb:</p>
<blockquote>
<p>Hab ich ja. Ich hab nachgedacht, was herausgefunden und es dann geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Es ist nicht überall besser.</p>
</blockquote>
<p>Niemad hat gesagt, dass man jetzt jedes enum durch ein enum class ersetzen soll. DA liegt der Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211171</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 13 May 2012 20:02:15 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 20:50:17 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Niemad hat gesagt, dass man jetzt jedes enum durch ein enum class ersetzen soll. DA liegt der Fehler.</p>
</blockquote>
<p>Genau.<br />
@TE: Wieso hast du überhaupt deine ganzen Enumerationen zu streng-typisierten geändert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211180</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 13 May 2012 20:50:17 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Sun, 13 May 2012 21:04:49 GMT]]></title><description><![CDATA[<p>Naja, strongly typed enums haben den Vorteil, dass sie nicht den sie enthaltenden Namensraum verpesten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211183</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sun, 13 May 2012 21:04:49 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 06:15:00 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>Naja, strongly typed enums haben den Vorteil, dass sie nicht den sie enthaltenden Namensraum verpesten...</p>
</blockquote>
<p>?? Dann machst du noch einen weiteren, einzig sie enthaltenden Namensraum..??</p>
<pre><code class="language-cpp">namespace Enums
{
    enum meinEnum
    {
        ME_ErstesElement,
        ME_ZweitesElement
    }

  //-..
</code></pre>
<p>Im übrigen muss man sich halt entscheiden was einem wichtiger ist, den Namensraum sauber halten oder auf Ganzzahlbasis rechnen können ohne irgendwelche Makros oder anderes gedöns...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211229</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 06:15:00 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 17:03:38 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>Naja, strongly typed enums haben den Vorteil, dass sie nicht den sie enthaltenden Namensraum verpesten...</p>
</blockquote>
<p>Genau das war der Grund. Da sie nicht unscoped sind kann ich mir den ganzen namespace Müll sparen, dachte ich zumindest. Leider habe ich immer mehr das Gefühl, dass im Standardisierungskommitee nur noch Ideoten sitzen und die Dinge nicht zu Ende denken. Dieses enum class ist doch somit vollig nutzlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211428</guid><dc:creator><![CDATA[Enumerator2]]></dc:creator><pubDate>Mon, 14 May 2012 17:03:38 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 17:45:42 GMT]]></title><description><![CDATA[<p>Enumerator2 schrieb:</p>
<blockquote>
<p>dot schrieb:</p>
<blockquote>
<p>Naja, strongly typed enums haben den Vorteil, dass sie nicht den sie enthaltenden Namensraum verpesten...</p>
</blockquote>
<p>Genau das war der Grund. Da sie nicht unscoped sind kann ich mir den ganzen namespace Müll sparen, dachte ich zumindest. Leider habe ich immer mehr das Gefühl, dass im Standardisierungskommitee nur noch Ideoten sitzen und die Dinge nicht zu Ende denken. Dieses enum class ist doch somit vollig nutzlos.</p>
</blockquote>
<p>Das sie den Namensraum nicht verpesten ist gar nicht das essentielle, sondern dass sie sich nicht implizit zu Skalaren konvertieren lassen.</p>
<p>Wenn es dir nur um den Namensraum geht, siehe oben - so kannst du das doch viel eleganter und mit weniger Aufwand lösen. Es ist eher Geschmackssache wieviel Aufwand man für Enumerationen verwendet (@PI: Viel Spaß mit deinem Makro XD).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211442</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 17:45:42 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 17:49:13 GMT]]></title><description><![CDATA[<p>Exakt. Der vorrangige Sinn von enum class ist, genau das zu verbieten was du vorhast, da du mit deinen Bitoperationen jegliche Typsicherheit verlierst...</p>
<p>Die Leute im Standardkomitee wissen schon was sie tun, genau darum sitzen ja auch genau die dort und nicht jemand anderes <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211443</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 14 May 2012 17:49:13 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 17:58:28 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>(@PI: Viel Spaß mit deinem Makro XD).</p>
</blockquote>
<pre><code class="language-cpp">#define BITFLAGS_ENUM(enum_type, underlaying_type) \
        bool operator &amp;(enum_type a, enum_type b) \
        {
                return static_cast&lt;underlaying_type&gt;(a) &amp; static_cast&lt;underlaying_type&gt;(b); \
        } \
        \
        enum_type operator | (enum_type a, enum_type b) \
        { \
                return static_cast&lt;enum_type&gt;(static_cast&lt;underlaying_type&gt;(a) | static_cast&lt;underlaying_type&gt;(b)); \
        } \
        ...
</code></pre>
<pre><code class="language-cpp">enum struct e : std::uint64_t
{
        foo = (1 &lt;&lt; 0),
        bar = (1 &lt;&lt; 1),
        baz = (1 &lt;&lt; 2),
        qux = (1 &lt;&lt; 3),
        ...
};

BITFLAGS_ENUM(e, std::uint64_t)
</code></pre>
<p>Oh ja, ist ja wirklich unglaublich schwer...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211449</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 14 May 2012 17:58:28 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 18:24:37 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>(@PI: Viel Spaß mit deinem Makro XD).</p>
</blockquote>
<pre><code class="language-cpp">#define BITFLAGS_ENUM(enum_type, underlaying_type) \
        bool operator &amp;(enum_type a, enum_type b) \
        {
                return static_cast&lt;underlaying_type&gt;(a) &amp; static_cast&lt;underlaying_type&gt;(b); \
        } \
        \
        enum_type operator | (enum_type a, enum_type b) \
        { \
                return static_cast&lt;enum_type&gt;(static_cast&lt;underlaying_type&gt;(a) | static_cast&lt;underlaying_type&gt;(b)); \
        } \
        ...
</code></pre>
<pre><code class="language-cpp">enum struct e : std::uint64_t
{
        foo = (1 &lt;&lt; 0),
        bar = (1 &lt;&lt; 1),
        baz = (1 &lt;&lt; 2),
        qux = (1 &lt;&lt; 3),
        ...
};

BITFLAGS_ENUM(e, std::uint64_t)
</code></pre>
<p>Oh ja, ist ja wirklich unglaublich schwer...</p>
</blockquote>
<p>Nö schwer nicht... davon war nie die Rede...einfach mehr Aufwand als nötig (wenn du noch arithmetische Grundrechenarten dazu nimmst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211460</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 18:24:37 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 18:26:03 GMT]]></title><description><![CDATA[<p>Jo wirklich, ein BITFLAGS_ENUM(bla, fuh) hinschreiben ist wirklich total viel Aufwand. Außerdem: Wieso willst du mit enums rechnen? oO</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211461</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 14 May 2012 18:26:03 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 18:31:27 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Jo wirklich, ein BITFLAGS_ENUM(bla, fuh) hinschreiben ist wirklich total viel Aufwand. Außerdem: Wieso willst du mit enums rechnen? oO</p>
</blockquote>
<p>Ne, nicht das hinschreiben vom Makro. Das definieren (obwohl du das theoretisch nur einmal brauchst und dann CTRL+C/V)... wieso ich mit ihnen Rechen will? <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="😃"
    /> gelegenheitlich... ich kann jetzt kein Beispiel nennen SETZ MICH NICH' UNTER DRUCK!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211464</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 18:31:27 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 18:33:47 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Das definieren (obwohl du das theoretisch nur einmal brauchst und dann CTRL+C/V)</p>
</blockquote>
<p>Nö. Stecks in nen Header.</p>
<p>Hacker schrieb:</p>
<blockquote>
<p>... wieso ich mit ihnen Rechen will? <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="😃"
    /> gelegenheitlich... ich kann jetzt kein Beispiel nennen SETZ MICH NICH' UNTER DRUCK!</p>
</blockquote>
<p>Bring ein Beispiel, aber schreib keinen Müll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211465</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 14 May 2012 18:33:47 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 19:18:52 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>wirklich, ein BITFLAGS_ENUM(bla, fuh) hinschreiben ist wirklich total viel Aufwand.</p>
</blockquote>
<p>Ich frage mich, warum du fuh brauchst. Das ist fehleranfällig und den Typen bekommst du doch auch durch <code>std::underlying_type&lt;bla&gt;::type</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211490</guid><dc:creator><![CDATA[wand auf wirklich]]></dc:creator><pubDate>Mon, 14 May 2012 19:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 19:54:44 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Bring ein Beispiel, aber schreib keinen Müll.</p>
</blockquote>
<p>Ok.</p>
<pre><code class="language-cpp">enum Color
{
      black,
      blue,
      green,
      cyan,
      red,
      magenta,
      brown,
      light_grey,
      dark_grey,
      light_blue,
      light_green,
      light_cyan,
      light_red,
      light_magenta,
      yellow,
      white
};

//...

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), TextColour + 16 * BackgroundColor);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2211504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211504</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 19:54:44 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 20:04:37 GMT]]></title><description><![CDATA[<p>wand auf wirklich schrieb:</p>
<blockquote>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>wirklich, ein BITFLAGS_ENUM(bla, fuh) hinschreiben ist wirklich total viel Aufwand.</p>
</blockquote>
<p>Ich frage mich, warum du fuh brauchst. Das ist fehleranfällig und den Typen bekommst du doch auch durch <code>std::underlying_type&lt;bla&gt;::type</code> .</p>
</blockquote>
<p>Dass es std::underlaying_type gibt, hab ich noch nicht verinnerlicht. Du hast natürlich Recht, so wäre es besser.</p>
<p>Hacker schrieb:</p>
<blockquote>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Bring ein Beispiel, aber schreib keinen Müll.</p>
</blockquote>
<p>Ok.</p>
<pre><code class="language-cpp">enum Color
{
      black,
      blue,
      green,
      cyan,
      red,
      magenta,
      brown,
      light_grey,
      dark_grey,
      light_blue,
      light_green,
      light_cyan,
      light_red,
      light_magenta,
      yellow,
      white
};

//...

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), TextColour + 16 * BackgroundColor);
</code></pre>
</blockquote>
<p>Mal abgesehen, dass mich Beispiele mit Windoof-spezifischem Code ankotzen, ergibt dein Beispiel doch gar keinen Sinn. Was soll denn bei 2*black rauskommen? Woher weißt du, dass 165*red immer noch red ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211508</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 14 May 2012 20:04:37 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 20:08:54 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Bring ein Beispiel, aber schreib keinen Müll.</p>
</blockquote>
<p>Ok.</p>
<pre><code class="language-cpp">enum Color
{
      black,
      blue,
      green,
      cyan,
      red,
      magenta,
      brown,
      light_grey,
      dark_grey,
      light_blue,
      light_green,
      light_cyan,
      light_red,
      light_magenta,
      yellow,
      white
};

//...

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), TextColour + 16 * BackgroundColor);
</code></pre>
</blockquote>
<p>Mal abgesehen, dass mich Beispiele mit Windoof-spezifischem Code ankotzen, ergibt dein Beispiel doch gar keinen Sinn.</p>
</blockquote>
<p>Selbstverständlich ergibt es Sinn.</p>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Was soll denn bei 2*black rauskommen? Woher weißt du, dass 165*red immer noch red ist?</p>
</blockquote>
<p>Deine Fragen ergeben doch gar keinen Sinn, denn <code>2 * black</code> ist 0 und <code>165 * red</code> ist selbstverständlich irgendeine Zahl (und wieso zum Teufel sollte die dann <code>red</code> sein!?).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211516</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 20:08:54 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 20:23:44 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Selbstverständlich ergibt es Sinn.</p>
</blockquote>
<p>Nein, tut es nicht. Farben werden üblicherweise als RGB, HSV, CMYK oder andere dargestellt. Aber ein BBGCRMBL_GD_GL_BL_GL_CL_RL_MYW Farbsystem kenn ich noch nicht.</p>
<p>Hacker schrieb:</p>
<blockquote>
<p>Deine Fragen ergeben doch gar keinen Sinn, denn <code>2 * black</code> ist 0 und <code>165 * red</code> ist selbstverständlich irgendeine Zahl (und wieso zum Teufel sollte die dann <code>red</code> sein!?).</p>
</blockquote>
<p>Die Fragen waren vermutlich falsch formuliert. Aber ich bin mal so frei und stelle direkt die fundementalere Frage: Welche interne Repräsentation schwebt dir vor? Das würde mich nun schon sehr interessieren. Am besten implementierst du den *-Operator, gibst jeder Farbe einen bestimmten Wert und schreibst eine Funktion std::array&lt;unsigned char, 3&gt; to_rgb(Color).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211533</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 14 May 2012 20:23:44 GMT</pubDate></item><item><title><![CDATA[Reply to enum class Problem on Mon, 14 May 2012 20:35:45 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>Selbstverständlich ergibt es Sinn.</p>
</blockquote>
<p>Nein, tut es nicht. Farben werden <strong>üblicherweise</strong> als RGB, HSV, CMYK oder andere dargestellt.</p>
</blockquote>
<p>Microsoft! <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="😃"
    /><br />
Aber mit 8 Bit kann man kein RGB machen (durch drei geht nicht, und für jeden Farbkanal zwei Bit ist zu wenig).</p>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>Deine Fragen ergeben doch gar keinen Sinn, denn <code>2 * black</code> ist 0 und <code>165 * red</code> ist selbstverständlich irgendeine Zahl (und wieso zum Teufel sollte die dann <code>red</code> sein!?).</p>
</blockquote>
<p>Die Fragen waren vermutlich falsch formuliert. Aber ich bin mal so frei und stelle direkt die fundementalere Frage: Welche interne Repräsentation schwebt dir vor? Das würde mich nun schon sehr interessieren. Am besten implementierst du den *-Operator, gibst jeder Farbe einen bestimmten Wert und schreibst eine Funktion std::array&lt;unsigned char, 3&gt; to_rgb(Color).</p>
</blockquote>
<p>Tut mir leid wenn ich dir jetzt sehr blöde Fragen stelle, aber was heißt &quot;interne Repräsentation&quot;? Wovon?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211546</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 20:35:45 GMT</pubDate></item></channel></rss>