title: What exactly is nullptr?
body: <p>We now have C++11 with many new features. An interesting and confusing one (at least for me) is the new <code>nullptr</code>.</p>
  
  <p>Well, no need anymore for the nasty macro <code>NULL</code>.</p>
  
  <pre><code>int* x = nullptr;
  myclass* obj = nullptr;
  </code></pre>
  
  <p>Still, I am not getting how <code>nullptr</code> works. For example, <a href="http://en.wikipedia.org/wiki/C%2B%2B11#Null_pointer_constant" rel="noreferrer">Wikipedia article</a> says:</p>
  
  <blockquote>
    <p>C++11 corrects this by introducing a new <strong>keyword</strong> to serve as a distinguished null pointer constant: nullptr. It is of <strong>type nullptr_t</strong>, which is implicitly convertible and comparable to any pointer type or pointer-to-member type. It is not implicitly convertible or comparable to integral types, except for bool.</p>
  </blockquote>
  
  <p>How is it a keyword and an instance of a type?</p>
  
  <p>Also, do you have another example (beside the Wikipedia one) where <code>nullptr</code> is superior to good old <code>0</code>?</p>