<?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[Konvertierungen]]></title><description><![CDATA[<p>Hi <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>
<p>Ich hab so meine Probleme damit zu erkennen, wann eine implizite und wann eine explizite Konvertierung vorliegt.</p>
<p>Mal ein Beispiel:</p>
<pre><code>X::X(long l)
{
}
X::X(unsigned long l)
{
}
X::X(string s)
{
}
X::X()
{
}
X x0(1.2);  // explizit
X x1{1.2};  // Fehlermeldung
X x2 = 1.2; // implizit
</code></pre>
<p>Kann mir bitte wer diese letzten 3 Zeilen erklären, warum das explizit oder implizit ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323748/konvertierungen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 13:54:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323748.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Feb 2014 22:43:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konvertierungen on Thu, 13 Feb 2014 22:43:40 GMT]]></title><description><![CDATA[<p>Hi <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>
<p>Ich hab so meine Probleme damit zu erkennen, wann eine implizite und wann eine explizite Konvertierung vorliegt.</p>
<p>Mal ein Beispiel:</p>
<pre><code>X::X(long l)
{
}
X::X(unsigned long l)
{
}
X::X(string s)
{
}
X::X()
{
}
X x0(1.2);  // explizit
X x1{1.2};  // Fehlermeldung
X x2 = 1.2; // implizit
</code></pre>
<p>Kann mir bitte wer diese letzten 3 Zeilen erklären, warum das explizit oder implizit ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383094</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Thu, 13 Feb 2014 22:43:40 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Thu, 13 Feb 2014 23:20:48 GMT]]></title><description><![CDATA[<p>Explizit: Du deutest den Cast syntaktisch an (C-Cast, C++-Casts), oder du nutzt Direktinitialisierung, welche durch die Klammern bei der Initialisierung gekennzeichnet ist.</p>
<p>Implizit ist es in der dritten Zeile, da du eine Zuweisung in der Initialisierung verwendest. Das nennt man Kopierinitialisierung (engl. <em>copy initialization</em>) und ist eine implizite Konvertierung, da es dieselbe Form von Initialisierung ist, wie sie auch beim Kopieren von Funktionsargumenten bzw. Rückgabewerten, Exceptions usw. vorhanden ist.</p>
<blockquote>
<pre><code>X x1{1.2};  // Fehlermeldung
</code></pre>
</blockquote>
<p>Nicht seit C++11.<br />
Edit: Doch, es ist ja mehrdeutig...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383101</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 13 Feb 2014 23:20:48 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Fri, 14 Feb 2014 16:06:19 GMT]]></title><description><![CDATA[<p>Also die Zeile 13 kapiert ich immer noch nicht. Normalerweise verwendet man bei einem expliziten cast doch immer spezielle Typumwandlungsoperatoren, wie z. B. static_cast. Aber hier sehe ich keine <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Das hier ist für mich z. B. eine typische explizite Typumwandlung:</p>
<pre><code>double dwert = 9.1;
int iwert = static_cast&lt;int&gt;(dwert);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2383210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383210</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Fri, 14 Feb 2014 16:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Fri, 14 Feb 2014 16:22:49 GMT]]></title><description><![CDATA[<p><a href="http://herbsutter.com/2013/05/09/gotw-1-solution/" rel="nofollow">Herb Sutter</a> empfehle ich beid er Fragestellung noch grad mal...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383214</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 14 Feb 2014 16:22:49 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 08:41:42 GMT]]></title><description><![CDATA[<p>Habe grad gesehen, dass es scheinbar auch noch eine andere Variante gibt, Zahlen zu konvertieren:</p>
<pre><code>int ival1, ival2 = 2;
float fval1 = 3.5f;

cout &lt;&lt; fval1/ival2 &lt;&lt; '\n'; // =&gt; 1.75
cout &lt;&lt; int(fval1)/ival2 &lt;&lt; '\n'; //  =&gt; 1
cout &lt;&lt; int(fval1)/float(ival2) &lt;&lt; '\n'; //  =&gt; 1.5
</code></pre>
<p>Ich verstehe aber nicht, wie man auf die letzten beiden Ergebnisse kommt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Sind diese int() und float() Konverierungen schon deprecated? Soll man statt dessen im C++11 nur noch static_cast für solche Zahlenkonvertierungen verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383420</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Sun, 16 Feb 2014 08:41:42 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 08:51:10 GMT]]></title><description><![CDATA[<blockquote>
<p>cout &lt;&lt; int(fval1)/ival2 &lt;&lt; '\n'; // =&gt; 1</p>
</blockquote>
<p>Aufgrund int() hat man 3. 3 / 2 = 1.5<br />
Weil 3 und 2 int-Werte sind, ist dann auch das Ergebnis wieder ein int-Wert? Also 1?</p>
<blockquote>
<p>cout &lt;&lt; int(fval1)/float(ival2) &lt;&lt; '\n'; // 1.5</p>
</blockquote>
<p>Hier hat man wieder 3 / 2. Aber eine von den beiden Zahlen ist ein float. Darum bleibt es beim float-Wert 1.5?</p>
<p>Stimmt das??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383425</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Sun, 16 Feb 2014 08:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 10:36:58 GMT]]></title><description><![CDATA[<blockquote>
<p>Aufgrund int() hat man 3. 3 / 2 = 1.5</p>
</blockquote>
<p>Wenn Fließkommazahlen in integrale Typen konvertiert werden, wird der Nachkommateil einfach &quot;abgeschnitten&quot;, sprich die Division ist 3 / 2, das ist 1.5. Und da der Typ des Divisionsausdrucks wieder integral ist, wird der Nachkommateil abgeschnitten, und es ergibt sich 1.</p>
<blockquote>
<p>Darum bleibt es beim float-Wert 1.5?</p>
</blockquote>
<p>Jup.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383435</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 16 Feb 2014 10:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 13:39:35 GMT]]></title><description><![CDATA[<p>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="🙂"
    /></p>
<p>Und wie schaut es mit diesen Konvertierungsfunktionen int() und float() aus? Sind die in C++11 deprecated?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383461</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Sun, 16 Feb 2014 13:39:35 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 13:54:19 GMT]]></title><description><![CDATA[<p>Ich weiß nicht, ob die casts schon per Standard deprecated sind. Allerdings wird von ihnen angeraten. Nimm stattdessen einfach static_cast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383465</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Sun, 16 Feb 2014 13:54:19 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 13:55:21 GMT]]></title><description><![CDATA[<p>tröröö schrieb:</p>
<blockquote>
<p>Sind die in C++11 deprecated?</p>
</blockquote>
<p>Nein, sie sind auch in C++98 nícht deprecated.<br />
Man sollte sie nur nicht verwenden. Um mal eben einen float zu einem int zu machen, ist das ok, aber auf gar keinen Fall verwenden wenn Pointer oder UDTs beteiligt sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383466</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 16 Feb 2014 13:55:21 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 13:57:30 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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383467</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Sun, 16 Feb 2014 13:57:30 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 18:43:49 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Um mal eben einen float zu einem int zu machen, ist das ok, aber auf gar keinen Fall verwenden wenn Pointer oder UDTs beteiligt sind.</p>
</blockquote>
<pre><code>std::string(&quot;asdf&quot;)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2383515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383515</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 16 Feb 2014 18:43:49 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 19:10:17 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>Um mal eben einen float zu einem int zu machen, ist das ok, aber auf gar keinen Fall verwenden wenn Pointer oder UDTs beteiligt sind.</p>
</blockquote>
<pre><code>std::string(&quot;asdf&quot;)
</code></pre>
</blockquote>
<p>Arcoth, das ist ein Konstruktoraufruf. Kein cast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383520</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 16 Feb 2014 19:10:17 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Sun, 16 Feb 2014 23:56:53 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<pre><code>std::string(&quot;asdf&quot;)
</code></pre>
</blockquote>
<p>Arcoth, das ist ein Konstruktoraufruf. Kein cast.</p>
</blockquote>
<p>Hätte ich auch gesagt. Scott Meyers sagt in Effective C++ allerdings dass das ein Cast ist.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

int main(){
	std::cout &lt;&lt; (std::string)&quot;hello&quot;;
	std::cout &lt;&lt; static_cast&lt;std::string&gt;(&quot;world&quot;);
}
</code></pre>
<p><a href="http://ideone.com/3o0kRY" rel="nofollow">Ideone</a></p>
<p>Scheinbar ist das aus C++-Sicht dasselbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383569</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sun, 16 Feb 2014 23:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 00:13:12 GMT]]></title><description><![CDATA[<p>Dann kanns nur eine Konstruktoraufrufcast sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383571</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 17 Feb 2014 00:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 01:00:54 GMT]]></title><description><![CDATA[<p><code>T(exp)</code> ist der sog. &quot;function style cast&quot;. Der gleich mächtig ist wie der C-style Cast.<br />
Leider:</p>
<pre><code class="language-cpp">typedef void* VoidPtr;
int main()
{
    int i = 123;
    VoidPtr v = VoidPtr(i); // OK, das selbe wie (VoidPtr)i
    return 0;
}
</code></pre>
<p>Die Schreibweise ansich ist ja OK, aber dass man damit alles machen kann was ein C-style Cast auch macht, finde ich schon etwas übertrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383578</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 17 Feb 2014 01:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 13:32:02 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Arcoth, das ist ein Konstruktoraufruf. Kein cast.</p>
</blockquote>
<p>Das ist Identisch. Du castest einen <code>char const*</code> nach <code>std::string</code> . Was denkst du, was ein Cast ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383633</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 17 Feb 2014 13:32:02 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 14:45:32 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>Arcoth, das ist ein Konstruktoraufruf. Kein cast.</p>
</blockquote>
<p>Das ist Identisch. Du castest einen <code>char const*</code> nach <code>std::string</code> . Was denkst du, was ein Cast ist?</p>
</blockquote>
<p>Ja, das Prinzip ist das ähnliche.<br />
Aber bei std::string(&quot;foo&quot;) wird C++-Code aufgerufen, der sicher geschrieben wurde und fehlergeprüft sind.<br />
Wohingegen die Casts im eigentlichem Sinne u.U. irgendwelche Bitumrepräsentation sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383640</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 17 Feb 2014 14:45:32 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 15:23:48 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Wohingegen die Casts im eigentlichem Sinne u.U. irgendwelche Bitumrepräsentation sind.</p>
</blockquote>
<pre><code>static_cast&lt;double&gt;(int_wert)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2383647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383647</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 17 Feb 2014 15:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 15:30:36 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Wohingegen die Casts im eigentlichem Sinne u.U. irgendwelche Bitumrepräsentation sind.</p>
</blockquote>
<p>Schon wenn du nur einen <code>unsigned</code> zu <code>int</code> castest, kann keine simple Bitumrepräsentation am Werk sein.</p>
<blockquote>
<p>Ja, das Prinzip ist das ähnliche.</p>
</blockquote>
<p>Nein, es ist haargenau das gleiche. Ein Cast ist eigentlich nur eine Erstellung und Initialisierung einer Temporary mit dem gegebenen Operanden.<br />
Edit:</p>
<p>N3797 §5.2.3/1 schrieb:</p>
<blockquote>
<p>the expression T(x1, x2, ...) is equivalent in effect to the declaration T t(x1, x2, ...); for some invented temporary variable t, with the result being the value of t as a prvalue.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2383649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383649</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 17 Feb 2014 15:30:36 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 18:11:38 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Nein, es ist haargenau das gleiche. Ein Cast ist eigentlich nur eine Erstellung und Initialisierung einer Temporary mit dem gegebenen Operanden.<br />
Edit:</p>
<p>N3797 §5.2.3/1 schrieb:</p>
<blockquote>
<p>the expression T(x1, x2, ...) is equivalent in effect to the declaration T t(x1, x2, ...); for some invented temporary variable t, with the result being the value of t as a prvalue.</p>
</blockquote>
</blockquote>
<p>Nein, es ist nicht haargenau das gleiche. In deinem Zitat gibt es mehrere Parameter, und damit kann es schon kein Cast mehr sein.<br />
Mit nur einem Parameter ist es aber ein Cast, und nicht mehr äquivalent zu der anderen Form.</p>
<p>Siehe:</p>
<pre><code class="language-cpp">typedef void* VoidPtr; 

int main() 
{ 
     int i = 123; 
     VoidPtr v = VoidPtr(i); // OK, das selbe wie (VoidPtr)i 
     VoidPtr v2(i); // Fehler
     return 0; 
}
</code></pre>
<p>Ein Konstruktor-Aufruf ist ein Funktionsaufruf (*), und ein Funktionsaufruf kann keinen reinterpret_cast machen. Ein Function-Style-Cast dagegen schon.</p>
<p>Hatte ich eigentlich schon geschrieben - wenn du aufgepasst hättest...</p>
<p>EDIT:<br />
*: OK, vermutlich formal nicht. Aber was diesen Fall angeht so-gut-wie <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/2383668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383668</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 17 Feb 2014 18:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 18:02:03 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>Wohingegen die Casts im eigentlichem Sinne u.U. irgendwelche Bitumrepräsentation sind.</p>
</blockquote>
<pre><code>static_cast&lt;double&gt;(int_wert)
</code></pre>
</blockquote>
<p>u.U. steht für unter Umständen, da sind das jetzt irgendwelches Assemblerbefehle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383683</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 17 Feb 2014 18:02:03 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 18:13:26 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>u.U. steht für unter Umständen, da sind das jetzt irgendwelches Assemblerbefehle.</p>
</blockquote>
<p>Zeig mal einen static_cast, der eine rein logische Uminterpretation von Bits, ohne jede Repräsentation im erzeugten Maschinencode, ist. Du denkst an reinterpret_cast.</p>
<p>P.S.: Ok, ein paar fallen mir selber ein: Ein Typ nach sich selbst. char nach signed/unsigned char (passendes Vorzeichen wählen). Aber neben den trivialen Beispielen tut der static_cast <em>in der Regel</em> etwas. Das er &quot;unter Umständen&quot; auch mal nichts tut (also nichts auf Ebene des erzeugten Codes), ist nicht seine definierende Eigenschaft. Ein Konstruktoraufruf ist &quot;unter Umständen&quot; auch nur eine Uminterpretation.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383686</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 17 Feb 2014 18:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 18:23:47 GMT]]></title><description><![CDATA[<p><code>Typ&amp;</code> auf <code>ErsteBasisklasse&amp;</code><br />
<code>Typ*</code> auf <code>ErsteBasisklasse*</code><br />
<code>ErsteBasisklasse&amp;</code> auf <code>Typ&amp;</code><br />
<code>ErsteBasisklasse*</code> auf <code>Typ*</code><br />
Mit vielen Compilern ist auch char -&gt; short, short -&gt; int u.Ä. ein Nop (weil der Wert sowieso schon in einem Register mit voller Breite steht).</p>
<p>----</p>
<p>Und wieso wird hier von allen der Reinterpret-Cast ignoriert?</p>
<p>Nochmal: das was man über <code>T(exp)</code> wissen sollte, ist dass es dem C-Style-Cast gleichgestellt ist, <strong>und daher nen Reinterpret-Cast machen kann</strong>.<br />
Einself.</p>
<p>EDIT: Ach, OK, sehe grade... um <code>T(exp)</code> ging's erst zuletzt. Auch gut <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/2383689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383689</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 17 Feb 2014 18:23:47 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 18:30:42 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>u.U. steht für unter Umständen, da sind das jetzt irgendwelches Assemblerbefehle.</p>
</blockquote>
<p>Zeig mal einen static_cast, der eine rein logische Uminterpretation von Bits, ohne jede Repräsentation im erzeugten Maschinencode, ist. Du denkst an reinterpret_cast.</p>
</blockquote>
<p>Ja, ich denk an reinterpret_cast. Ich schrieb allgemein von casts, deshalb auch reinterpret_cast.</p>
<p>Edit: Und das Ganze hier ist auch der Grund, wieso ich lang überlegt hab, bevor ich meinen ersten Beitrag schrieb...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383692</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 17 Feb 2014 18:30:42 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierungen on Mon, 17 Feb 2014 19:40:45 GMT]]></title><description><![CDATA[<pre><code>cout &lt;&lt; fval1/ival2 &lt;&lt; '\n'; // =&gt; 1.75
cout &lt;&lt; int(fval1)/ival2 &lt;&lt; '\n'; //  =&gt; 1
cout &lt;&lt; int(fval1)/float(ival2) &lt;&lt; '\n'; //  =&gt; 1.5
</code></pre>
<p>Der Jürgen Wolf und ich sind ein paar (waren nur ein paar wenige und keine spektakulären) Punkte aus einem Buch durchgegangen, die mir aufgefallen sind. Das mit dem int() und float() wird er auch noch ändern in die neuen C++11-Konvertierungsfunktionen. Also ich finde, der ist echt nett. Er kümmert sich um die Leser und auch um sein neues Buch <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="🙂"
    /> Hackt doch bitte nicht immer auf ihm rum. Schaut euch sein neues Buch &quot;Grundkurs C++ Aktuell zu C++11&quot; doch mal an (müsst es ja nicht gleich kaufen). Also für mich als Einsteiger ist dieses Buch super. Ich bin zufrieden damit. <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>
<p>Ach übrigens: danke für die vielen Einträge. Muss ich jetzt gleich mal alle durchlesen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2383711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2383711</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Mon, 17 Feb 2014 19:40:45 GMT</pubDate></item></channel></rss>