<?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 und casting]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe folgende <strong>enum class</strong>:</p>
<pre><code class="language-cpp">enum class Square : unsigned int
{
    A=1,
    B=2,
    C=33 //etc...
}
</code></pre>
<p>Und dazu folgende Methode:</p>
<pre><code class="language-cpp">Block GetBlock(Square s)
{
     return _blocks[int(s)]; //Oder _blocks[static_cast&lt;int&gt;(s)];
}
</code></pre>
<p>Mir kommt dieses Konstrukt irgendwie merkwürdig vor, gibt es da evtl. eine elegantere Lösung (von wegen, man soll Casts vermeiden etc.)</p>
<p>OP <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/topic/300334/enum-class-und-casting</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 21:13:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300334.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Mar 2012 11:23:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to enum class und casting on Thu, 01 Mar 2012 11:23:19 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe folgende <strong>enum class</strong>:</p>
<pre><code class="language-cpp">enum class Square : unsigned int
{
    A=1,
    B=2,
    C=33 //etc...
}
</code></pre>
<p>Und dazu folgende Methode:</p>
<pre><code class="language-cpp">Block GetBlock(Square s)
{
     return _blocks[int(s)]; //Oder _blocks[static_cast&lt;int&gt;(s)];
}
</code></pre>
<p>Mir kommt dieses Konstrukt irgendwie merkwürdig vor, gibt es da evtl. eine elegantere Lösung (von wegen, man soll Casts vermeiden etc.)</p>
<p>OP <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/2187290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187290</guid><dc:creator><![CDATA[OP]]></dc:creator><pubDate>Thu, 01 Mar 2012 11:23:19 GMT</pubDate></item><item><title><![CDATA[Reply to enum class und casting on Thu, 01 Mar 2012 11:28:25 GMT]]></title><description><![CDATA[<p>Soweit ich das sehe ist der Sinn von enum class doch, dass man keine implizite Umwandlung mehr von enum class nach integer type hat. Insofern ist das schon ok so, außer dass ich für den cast eher static_cast<a href="std::size%5C_t" rel="nofollow">std::size\_t</a> nutzen würde, und diesen &quot;bösen&quot; Cast direkt in einer extra Umwandlungsfunktion verstecken würde, insofern du ihn öfter brauchst. (Denn dann kannst du zur Not Checks einbauen.)</p>
<p>Habe mich aber noch nicht soo viel mit enum class beschäftigt, vielleicht gibt's da ja andere Sichtweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187292</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 01 Mar 2012 11:28:25 GMT</pubDate></item><item><title><![CDATA[Reply to enum class und casting on Thu, 01 Mar 2012 12:31:57 GMT]]></title><description><![CDATA[<p>Du musst natürlich einen static_cast&lt;unsigned&gt; verwenden. Alles weitere hat cooky schon gesagt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187317</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 01 Mar 2012 12:31:57 GMT</pubDate></item><item><title><![CDATA[Reply to enum class und casting on Thu, 01 Mar 2012 12:43:13 GMT]]></title><description><![CDATA[<p>Danke für eure Antworten.</p>
<p>Das mit dem Verstecken in einer Funktion macht Sinn, aber da ich den Cast innerhalb der Klasse nur 2 mal benötige, passt das so (erstmal). Das ich auf unsigned casten muss stimmt. Da habe ich zu schnell das Beispiel getippert. Danke für den Hinweis :&gt;</p>
<p>Grüße</p>
<p>OP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187326</guid><dc:creator><![CDATA[OP]]></dc:creator><pubDate>Thu, 01 Mar 2012 12:43:13 GMT</pubDate></item></channel></rss>