title: Why are override and final identifiers with special meaning instead of reserved keywords?
body: <p>Both the <a href="http://en.cppreference.com/w/cpp/language/override" rel="noreferrer">override specifier</a> and <a href="http://en.cppreference.com/w/cpp/language/final" rel="noreferrer">final specifier</a> were added in C++11. They differ from other specifiers added to C++11 such as <a href="http://en.cppreference.com/w/cpp/language/constexpr" rel="noreferrer">constexpr</a> and <a href="http://en.cppreference.com/w/cpp/language/decltype" rel="noreferrer">decltype</a>, in that they are not <a href="http://en.cppreference.com/w/cpp/keyword" rel="noreferrer">keywords</a> and so are available for use as identifiers:</p>
  
  <pre><code>int main()
  {
    int override = 0 ;    // Ok
    int final = 0 ;       // Ok
    //int constexpr = 0 ; // Error
  }
  </code></pre>
  
  <p>They are referred to as <em>identifiers with special meaning</em>, which is covered in the draft C++11 standard section <code>2.11</code> <em>[lex.name]</em> (<em>emphasis mine</em>):</p>
  
  <blockquote>
    <p>The <strong>identifiers in Table 3 have a special meaning</strong> when appearing
    in a certain context. When referred to in the grammar, these
    identifiers are used explicitly rather than using the identifier
    grammar production. any ambiguity as to whether a given identifier has
    a special meaning is resolved to interpret the token as a regular
    identifier.</p>
  </blockquote>
  
  <p>and <em>Table 3 -- Identifiers with special meaning</em> lists both <em>override</em> and <em>final</em>.</p>
  
  <p>Why did these two specifiers end up being <em>identifiers with special meaning</em> instead of <em>keywords</em>?</p>