<?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[Warum kein &amp;quot;echter&amp;quot; 8 bit int?]]></title><description><![CDATA[<p>Mal eine vielleicht naive Frage. Die Erkenntnis ist ja für alte C++ Hasen nicht neu, dass ein uint8_t nichts anderes als ein unsigned char mit all seinen Sonderbehandlungen ist und man sich da schwer auf die Schnauze legen kann, wenn man diese Sonderfälle vergisst zu berücksichtigen. Ich frage mich daher warum noch niemand auf die Idee gekommen ist, dem Standard einen &quot;echten&quot; Integer mit der Größe eines chars hinzuzufügen, der nicht nur ein Typedef ist. Im prinzip kann man sich ja so etwas schon fast als Klasse selber basteln wobei man trotz allem noch nicht alle Eigenschaften eines &quot;eingebauten&quot; Datentypes nachbilden kann.</p>
<p>Ich frage mich auch wie das mit Concepts sein wird. char ist ja ein Typ der in vielen Aspekten wie ein int ist, in anderen aber nicht. Ob man das sauber auseinander halten kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/331381/warum-kein-quot-echter-quot-8-bit-int</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 16:47:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331381.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Feb 2015 16:29:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Wed, 25 Feb 2015 16:29:58 GMT]]></title><description><![CDATA[<p>Mal eine vielleicht naive Frage. Die Erkenntnis ist ja für alte C++ Hasen nicht neu, dass ein uint8_t nichts anderes als ein unsigned char mit all seinen Sonderbehandlungen ist und man sich da schwer auf die Schnauze legen kann, wenn man diese Sonderfälle vergisst zu berücksichtigen. Ich frage mich daher warum noch niemand auf die Idee gekommen ist, dem Standard einen &quot;echten&quot; Integer mit der Größe eines chars hinzuzufügen, der nicht nur ein Typedef ist. Im prinzip kann man sich ja so etwas schon fast als Klasse selber basteln wobei man trotz allem noch nicht alle Eigenschaften eines &quot;eingebauten&quot; Datentypes nachbilden kann.</p>
<p>Ich frage mich auch wie das mit Concepts sein wird. char ist ja ein Typ der in vielen Aspekten wie ein int ist, in anderen aber nicht. Ob man das sauber auseinander halten kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444335</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 25 Feb 2015 16:29:58 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Wed, 25 Feb 2015 16:40:09 GMT]]></title><description><![CDATA[<p>TNA schrieb:</p>
<blockquote>
<p>char ist ja ein Typ der in vielen Aspekten wie ein int ist, in anderen aber nicht.</p>
</blockquote>
<p>char vielleicht, aber unsigned char oder signed char sind genau gleich wie int. Die Spezialfälle sind allesamt Fehldesign in der Standardbibliothek.</p>
<p>Mir fehlen aber strong typedefs. Z.B. wenn ich irgendeine ID als int speichere. Dann mache ich</p>
<pre><code class="language-cpp">using user_id = unsigned;
</code></pre>
<p>, aber das schützt mich nicht vor Typfehlern. Ich will doch nicht ints nach user_ids konvertieren. Schön wäre etwas in der Art von</p>
<pre><code class="language-cpp">using struct user_id = unsigned; // strong typedef
</code></pre>
<p>wo <code>user_id</code> ein ganz neuer Typ ist, der die gleichen Eigenschaften wie <code>unsigned</code> besitzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444337</guid><dc:creator><![CDATA[stronger]]></dc:creator><pubDate>Wed, 25 Feb 2015 16:40:09 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Wed, 25 Feb 2015 17:06:44 GMT]]></title><description><![CDATA[<p>stronger schrieb:</p>
<blockquote>
<p>char vielleicht, aber unsigned char oder signed char sind genau gleich wie int. Die Spezialfälle sind allesamt Fehldesign in der Standardbibliothek.</p>
</blockquote>
<p>Guter Einwand. So habe ich das noch nicht gesehen. Mir fällt aber auch kein Grund ein, warum ein unsigned char oder signed char die selben Sonderbehandlungen benötigen sollte wie char. Sind ja schließlich drei verschiedene Typen.</p>
<p>stronger schrieb:</p>
<blockquote>
<p>Mir fehlen aber strong typedefs.</p>
</blockquote>
<p>So geht es mir auch. Mit C++11 kommt man ja schon recht nah an die Möglichkeit selbst definierten Typen die Eigenschaften von einem int zu geben, aber eben nur fast und nur mit viel Boilerplate-Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444340</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 25 Feb 2015 17:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Wed, 25 Feb 2015 19:02:38 GMT]]></title><description><![CDATA[<p>stronger schrieb:</p>
<blockquote>
<p>TNA schrieb:</p>
<blockquote>
<p>char ist ja ein Typ der in vielen Aspekten wie ein int ist, in anderen aber nicht.</p>
</blockquote>
<p>char vielleicht, aber unsigned char oder signed char sind genau gleich wie int. Die Spezialfälle sind allesamt Fehldesign in der Standardbibliothek.</p>
</blockquote>
<p>Erm.<br />
Diese Designfehler (wo ich dir zustimme dass es welche sind!) sind aber nunmal da. Und da die Spezialbehandlungen in der std. Library und Spezialregeln in der Sprache (z.B. was strong aliasing angeht) das einzige sind was char, unsigned char und signed char besonders macht, macht die Behauptung &quot;char vielleicht, aber unsigned char oder signed char sind genau gleich wie int&quot; mMn. keinen Sinn. Es sollte vielleicht so sein, aber es ist eben nicht so.</p>
<p>stronger schrieb:</p>
<blockquote>
<p>Mir fehlen aber strong typedefs. (...) Schön wäre etwas in der Art von</p>
<pre><code class="language-cpp">using struct user_id = unsigned; // strong typedef
</code></pre>
<p>wo <code>user_id</code> ein ganz neuer Typ ist, der die gleichen Eigenschaften wie <code>unsigned</code> besitzt.</p>
</blockquote>
<p>Ja, das wäre praktisch! Weiss nicht ob mir die Syntax gefällt, aber die Funktionalität wäre praktisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444349</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 25 Feb 2015 19:02:38 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Thu, 26 Feb 2015 03:17:06 GMT]]></title><description><![CDATA[<p>Ist wohl ein Relikt aus 16-Bit-Zeiten.<br />
Zeiten als XOR AL, AH noch gängige Praxis waren.</p>
<p>EDIT:<br />
Oder XOR AL, AL - weil ich ja schließlich einen cycle schneller damit bin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444403</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Thu, 26 Feb 2015 03:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Thu, 26 Feb 2015 15:50:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Mit C++11 kommt man ja schon recht nah an die Möglichkeit selbst definierten Typen die Eigenschaften von einem int zu geben, aber eben nur fast und nur mit viel Boilerplate-Code.</p>
</blockquote>
<p>Da würde mich jetzt ein (rudimentäres) Beispiel interessieren, wie kann ich mir das vorstellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444444</guid><dc:creator><![CDATA[jsdfkshfskfhd]]></dc:creator><pubDate>Thu, 26 Feb 2015 15:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Thu, 26 Feb 2015 16:11:09 GMT]]></title><description><![CDATA[<p>Mich würde dabei hauptsächlich interessieren warum man dazu C++11 braucht...<br />
Wegen der &quot;relaxed POD Regeln&quot;? Enum class? ...?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444448</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 26 Feb 2015 16:11:09 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Thu, 26 Feb 2015 20:35:13 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Mich würde dabei hauptsächlich interessieren warum man dazu C++11 braucht...<br />
Wegen der &quot;relaxed POD Regeln&quot;? Enum class? ...?</p>
</blockquote>
<p>Ich dachte in erster Linie an constexpr. Bisher komme ein selbstdefinierter Typ nie eine compilezeit-Konstanten sein. Ob das jetzt bei einem ID so wichtig ist sei mal dahingestellt. Für Flag Klassen ist das aber essentiell. Auch durch User-defined literals kann man etwas machen, was sonst nur eingebaute Typen können wobei das nur syntaktic sugar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444473</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Thu, 26 Feb 2015 20:35:13 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kein &amp;quot;echter&amp;quot; 8 bit int? on Thu, 26 Feb 2015 23:16:53 GMT]]></title><description><![CDATA[<p>*self-facepalm*</p>
<p>Natürlich <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 />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2444491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2444491</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 26 Feb 2015 23:16:53 GMT</pubDate></item></channel></rss>