title: If nullptr_t isn't a keyword, why are char16_t and char32_t?
body: <p>As discussed at <a href="https://stackoverflow.com/questions/34107491/why-is-nullptr-t-not-a-keyword">Why is nullptr_t not a keyword</a>, it is better to avoid introducing new keywords because they can break backward compatibility.</p>
  
  <p>Why then are <code>char16_t</code> and <code>char32_t</code> keywords, when they could just as well have been defined like so?</p>
  
  <pre><code>namespace std {
      typedef decltype(u'q') char16_t;
      typedef decltype(U'q') char32_t;
  }
  </code></pre>