<?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[Typangabe bei Casts]]></title><description><![CDATA[<p>Hallo</p>
<p>Wenn ich einen <code>int</code> mit <code>static_cast</code> in einen <code>char</code> und dann implizit in einen <code>bool</code> konvertieren will schreibe ich:</p>
<pre><code class="language-cpp">int foo = 1;
bool bar = static_cast&lt;char&gt;(foo);
</code></pre>
<p>Hier ist die explizite Typangabe sinnvoll. Wozu will das Sprachmittel bei folgendem Code den Typ explizit von mir wissen (es ist ein Sprachmittel, es kann den gewünschten Zieltyp sicher ermitteln)?</p>
<pre><code class="language-cpp">int foo = 1;
char bar = static_cast&lt;char&gt;(foo);
</code></pre>
<p>Wäre es nicht weitaus sinnvoller, dass es selbst schaut wo das Resultat genutzt wird und dann eben den Typ davon verwendet?</p>
<p>MfG, EOutOfResources</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286977/typangabe-bei-casts</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 15:31:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286977.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 May 2011 17:10:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Typangabe bei Casts on Thu, 19 May 2011 17:11:44 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Wenn ich einen <code>int</code> mit <code>static_cast</code> in einen <code>char</code> und dann implizit in einen <code>bool</code> konvertieren will schreibe ich:</p>
<pre><code class="language-cpp">int foo = 1;
bool bar = static_cast&lt;char&gt;(foo);
</code></pre>
<p>Hier ist die explizite Typangabe sinnvoll. Wozu will das Sprachmittel bei folgendem Code den Typ explizit von mir wissen (es ist ein Sprachmittel, es kann den gewünschten Zieltyp sicher ermitteln)?</p>
<pre><code class="language-cpp">int foo = 1;
char bar = static_cast&lt;char&gt;(foo);
</code></pre>
<p>Wäre es nicht weitaus sinnvoller, dass es selbst schaut wo das Resultat genutzt wird und dann eben den Typ davon verwendet?</p>
<p>MfG, EOutOfResources</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065963</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Thu, 19 May 2011 17:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to Typangabe bei Casts on Thu, 19 May 2011 17:17:07 GMT]]></title><description><![CDATA[<p>Im zweiten Fall ist der Cast imho unnötig, da reicht auch eine implizite Typumwandlung. Und selbst das erste Beispiel sieht unsinnig aus.</p>
<p>Ansonsten: Der Compiler betrachtet den Cast für sich alleine, bevor er sich überlegt, was er mit dem Ergebnis machen soll - das könnte ja auch etwas viel komplizierteres sein als eine einfache Zuweisung <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/2065966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065966</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 May 2011 17:17:07 GMT</pubDate></item><item><title><![CDATA[Reply to Typangabe bei Casts on Thu, 19 May 2011 17:19:32 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Im zweiten Fall ist der Cast imho unnötig, da reicht auch eine implizite Typumwandlung. Und selbst das erste Beispiel sieht unsinnig aus.</p>
</blockquote>
<p>Natürlich. Es sind ja Beispiele.</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>das könnte ja auch etwas viel komplizierteres sein als eine einfache Zuweisung <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>
</blockquote>
<p>Mir fällt auf die schnelle keinen Bereich ein, wo der Typ nicht ermittelbar sein sollte. Bei Überladung gibt es halt eben einen Fehler wegen Mehrdeutigkeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065967</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Thu, 19 May 2011 17:19:32 GMT</pubDate></item><item><title><![CDATA[Reply to Typangabe bei Casts on Thu, 19 May 2011 17:24:38 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Im zweiten Fall ist der Cast imho unnötig, da reicht auch eine implizite Typumwandlung. Und selbst das erste Beispiel sieht unsinnig aus.</p>
<p>Ansonsten: Der Compiler betrachtet den Cast für sich alleine, bevor er sich überlegt, was er mit dem Ergebnis machen soll - das könnte ja auch etwas viel komplizierteres sein als eine einfache Zuweisung <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>
</blockquote>
<p>Außerdem ist ein Cast ja, obwohl er ein Schlüsselwort ist, eigentlich eine Template-Funktion und bei der kann man Rückgabetypen nicht überladen - alles andere wäre verwirrend, inkonsistent und würde möglicherweise zu Uneindeutigkeiten führen (wie oben erwähnt).</p>
<p>EDIT: Wenn schon keine Möglichkeit der impliziten Umwandlung besteht und du bspw. einen automatischen reinterpret_cast&lt;&gt;() verwenden willst, solltest du dir bewusst sein, dass ein Cast auch dazu da ist, dass du auf dein Programmdesign aufmerksam wirst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065968</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Thu, 19 May 2011 17:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to Typangabe bei Casts on Thu, 19 May 2011 17:23:45 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Mir fällt auf die schnelle keinen Bereich ein, wo der Typ nicht ermittelbar sein sollte. Bei Überladung gibt es halt eben einen Fehler wegen Mehrdeutigkeit.</p>
</blockquote>
<p>Bei Überladungen bekommst du mitunter keinen Fehler, weil eine der Funktionen exakt passt - nur nicht die, die du eigentlich benötigen würdest. Und bei Templates mußt du mitunter sicherstellen, daß alle Parameter den selben Typ haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065970</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 May 2011 17:23:45 GMT</pubDate></item><item><title><![CDATA[Reply to Typangabe bei Casts on Thu, 19 May 2011 17:41:27 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Mir fällt auf die schnelle keinen Bereich ein, wo der Typ nicht ermittelbar sein sollte. Bei Überladung gibt es halt eben einen Fehler wegen Mehrdeutigkeit.</p>
</blockquote>
<p>weist du was du da sagst?</p>
<p>klar, alles ermittelbar für den compiler, aber hast du dir auch mal gedanken gemacht warum das nicht gemacht wird?</p>
<p>sagen dir formale sprachen und in dem zusammenhang grammatiken, chomsky hierarchie, automaten theorie und regulär bzw. kontextfrei etwas?</p>
<p>regularität ist was cooles, vor allem ist es schnell.<br />
kontextfreiheit ist auch gut und recht leistungsfähig, es ist zwar langsamer als reguläre sprachen aber noch schnell genug</p>
<p>und was du da möchtest ist kontextsensitivität... (C++ ist eh schon nicht mehr kontextfrei)<br />
und das ist langsam, trotz der rekusionstiefe beim backtracking von 1 !</p>
<p>würde der compiler überall noch gucken wofür ein ausdruck verwandt würde, dann wärst du mit einem hallo welt programm auf einem supercomputer 3 stunden am kompilieren - viel spass !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065978</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 19 May 2011 17:41:27 GMT</pubDate></item><item><title><![CDATA[Reply to Typangabe bei Casts on Thu, 19 May 2011 17:53:47 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>weist du was du da sagst?</p>
<p>klar, alles ermittelbar für den compiler, aber hast du dir auch mal gedanken gemacht warum das nicht gemacht wird?</p>
</blockquote>
<p>Versteh ich grad falsch, oder behauptest du, es gäbe keine <a href="http://de.wikipedia.org/wiki/Typinferenz" rel="nofollow">Typinferenz</a>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065987</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 19 May 2011 17:53:47 GMT</pubDate></item></channel></rss>