<?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[nullptr conversion]]></title><description><![CDATA[<p>Es fiel mir auf, als ich den Beitrag hier schrieb: <a href="http://www.c-plusplus.net/forum/p2426047#2426047" rel="nofollow">http://www.c-plusplus.net/forum/p2426047#2426047</a><br />
Der Standard schreibt folgendes.</p>
<p>§4.10/1 schrieb:</p>
<blockquote>
<p>A null pointer constant is an integer literal (2.14.2) with value zero or a prvalue of type std::nullptr_t.<br />
A null pointer constant can be converted to a pointer type;[...]. Such a conversion is called a null pointer conversion.</p>
</blockquote>
<p>Deswegen ist die Konvertierung nullptr -&gt; Pointer eine <em>standard conversion</em>.<br />
Die gängige (und pre C++11-) Implementierung von std::nullptr_t, die zu Demonstrationszwecken gezeigt wird, hat einen Konvertierungsoperator zu jedem Pointer type. Die scheint jedoch falsch zu sein, schließlich ist ein Konvertierungsoperator eine <em>user-defined conversion</em>.<br />
Daraus folgt, dass folgender Code kompilieren sollte: <a href="http://ideone.com/sMa1C0" rel="nofollow">http://ideone.com/sMa1C0</a><br />
foo wird zu std::nullptr konvertiert, was dann zu void* konvertiert wird. Ersteres ist eine <em>user-defined conversion</em>, letzteres eine <em>standard conversion</em>, das ist dann laut §13.3.3.1.2/1 eine <em>user-defined conversion sequence</em>.<br />
Bevor ich jetzt einen Bug report schreibe, kann das einer bestätigen und/oder mir sagen ob ich mit meiner Auslegung richtig liege?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/329059/nullptr-conversion</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 05:07:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329059.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Nov 2014 19:36:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to nullptr conversion on Wed, 05 Nov 2014 19:36:29 GMT]]></title><description><![CDATA[<p>Es fiel mir auf, als ich den Beitrag hier schrieb: <a href="http://www.c-plusplus.net/forum/p2426047#2426047" rel="nofollow">http://www.c-plusplus.net/forum/p2426047#2426047</a><br />
Der Standard schreibt folgendes.</p>
<p>§4.10/1 schrieb:</p>
<blockquote>
<p>A null pointer constant is an integer literal (2.14.2) with value zero or a prvalue of type std::nullptr_t.<br />
A null pointer constant can be converted to a pointer type;[...]. Such a conversion is called a null pointer conversion.</p>
</blockquote>
<p>Deswegen ist die Konvertierung nullptr -&gt; Pointer eine <em>standard conversion</em>.<br />
Die gängige (und pre C++11-) Implementierung von std::nullptr_t, die zu Demonstrationszwecken gezeigt wird, hat einen Konvertierungsoperator zu jedem Pointer type. Die scheint jedoch falsch zu sein, schließlich ist ein Konvertierungsoperator eine <em>user-defined conversion</em>.<br />
Daraus folgt, dass folgender Code kompilieren sollte: <a href="http://ideone.com/sMa1C0" rel="nofollow">http://ideone.com/sMa1C0</a><br />
foo wird zu std::nullptr konvertiert, was dann zu void* konvertiert wird. Ersteres ist eine <em>user-defined conversion</em>, letzteres eine <em>standard conversion</em>, das ist dann laut §13.3.3.1.2/1 eine <em>user-defined conversion sequence</em>.<br />
Bevor ich jetzt einen Bug report schreibe, kann das einer bestätigen und/oder mir sagen ob ich mit meiner Auslegung richtig liege?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426064</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 05 Nov 2014 19:36:29 GMT</pubDate></item><item><title><![CDATA[Reply to nullptr conversion on Wed, 05 Nov 2014 23:23:59 GMT]]></title><description><![CDATA[<blockquote>
<p>Die gängige (und pre C++11-) Implementierung von std::nullptr_t, <strong>die zu Demonstrationszwecken gezeigt wird</strong>, hat einen Konvertierungsoperator zu jedem Pointer type.</p>
</blockquote>
<p>Die ist nicht normativ. Trotzdem ist dein Befund richtig.</p>
<p>Nur Schade dass ich den Report schon vor einer Minute abgeschickt habe. :p <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
(Ich hätte erwartet dass der Bug schon reported wurde. Scheint er nicht zu sein)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426100</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 05 Nov 2014 23:23:59 GMT</pubDate></item><item><title><![CDATA[Reply to nullptr conversion on Thu, 06 Nov 2014 17:35:52 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Nur Schade dass ich den Report schon vor einer Minute abgeschickt habe. :p <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
(Ich hätte erwartet dass der Bug schon reported wurde. Scheint er nicht zu sein)</p>
</blockquote>
<p>Auch gut, muss ich das nicht machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426211</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 06 Nov 2014 17:35:52 GMT</pubDate></item><item><title><![CDATA[Reply to nullptr conversion on Thu, 06 Nov 2014 18:44:53 GMT]]></title><description><![CDATA[<p>Sorry, will den Thread nicht entführen, aber wo schickt ihr so nen Bug Report hin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426230</guid><dc:creator><![CDATA[wohin]]></dc:creator><pubDate>Thu, 06 Nov 2014 18:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to nullptr conversion on Thu, 06 Nov 2014 19:24:53 GMT]]></title><description><![CDATA[<p><a href="https://gcc.gnu.org/bugzilla/" rel="nofollow">GCC Bugzilla</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2426241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2426241</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 06 Nov 2014 19:24:53 GMT</pubDate></item></channel></rss>