<story><title>C++ 11 Approved</title><url>http://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/</url></story><parent_chain><item><author>vog</author><text>&lt;i&gt;&amp;#62; explicit strong nullptr constant; no more NULL macro nonsense&lt;/i&gt;&lt;p&gt;What is the point of this? C++ defines the null pointer to be always 0. So I never needed the NULL macro in C++ anyway, as I&apos;m allowed to simply type 0 instead.&lt;p&gt;In how far is that new nullptr constant preferable to writing simply 0?</text></item><item><author>Animus7</author><text>Awesome! I&apos;ve been looking forward to the day I&apos;m no longer relying on &quot;experimental&quot; C++0x support! Here&apos;s a smaller tl;dr for those who want it:&lt;p&gt;-foreach loop&lt;p&gt;-first-class rvalue (&quot;temporary&quot;) types&lt;p&gt;-lambda functions + closures&lt;p&gt;-implicit typing (auto keyword)&lt;p&gt;-decltype(), getting &quot;declared type&quot; of any expression&lt;p&gt;-variadic ... templates&lt;p&gt;-expanded STL -- incl. threading and RNG&apos;s&lt;p&gt;-construction from C-style initializer list&lt;p&gt;-Unicode literals&lt;p&gt;-enum class that doesn&apos;t auto-decay to int, enums with configurable base type&lt;p&gt;-explicit strong nullptr constant; no more NULL macro nonsense&lt;p&gt;The rest of the stuff is (in my opinion) less general/noteworthy.</text></item></parent_chain><comment><author>Someone</author><text>The standard example is:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    void f(int x);
    void f(char *x);
    ...
    f(0);  // calls void f(int)
&lt;/code&gt;&lt;/pre&gt;
That may seem contrived, but you may not know of the f(int) overload, especially in combination with templates.&lt;p&gt;NULL, if #define&apos;d as (void *)0, prevents that error.</text></comment>
<story><title>C++ 11 Approved</title><url>http://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/</url></story><parent_chain><item><author>vog</author><text>&lt;i&gt;&amp;#62; explicit strong nullptr constant; no more NULL macro nonsense&lt;/i&gt;&lt;p&gt;What is the point of this? C++ defines the null pointer to be always 0. So I never needed the NULL macro in C++ anyway, as I&apos;m allowed to simply type 0 instead.&lt;p&gt;In how far is that new nullptr constant preferable to writing simply 0?</text></item><item><author>Animus7</author><text>Awesome! I&apos;ve been looking forward to the day I&apos;m no longer relying on &quot;experimental&quot; C++0x support! Here&apos;s a smaller tl;dr for those who want it:&lt;p&gt;-foreach loop&lt;p&gt;-first-class rvalue (&quot;temporary&quot;) types&lt;p&gt;-lambda functions + closures&lt;p&gt;-implicit typing (auto keyword)&lt;p&gt;-decltype(), getting &quot;declared type&quot; of any expression&lt;p&gt;-variadic ... templates&lt;p&gt;-expanded STL -- incl. threading and RNG&apos;s&lt;p&gt;-construction from C-style initializer list&lt;p&gt;-Unicode literals&lt;p&gt;-enum class that doesn&apos;t auto-decay to int, enums with configurable base type&lt;p&gt;-explicit strong nullptr constant; no more NULL macro nonsense&lt;p&gt;The rest of the stuff is (in my opinion) less general/noteworthy.</text></item></parent_chain><comment><author>FrankBooth</author><text>Consider:&lt;p&gt;&lt;pre&gt;&lt;code&gt;  int execl(const char *path, const char *arg, ...);
&lt;/code&gt;&lt;/pre&gt;
called like so:&lt;p&gt;&lt;pre&gt;&lt;code&gt;  execl(&quot;foo&quot;, &quot;bar&quot;, 0);
&lt;/code&gt;&lt;/pre&gt;
Particularly when sizeof(int) != sizeof(void *).</text></comment>