title: How to override non-virtual functions?
body: <p>The very new syntax of <code>override</code> allows to let the compiler to report an error, if one does not really <em>override</em> a virtual function <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm" rel="nofollow noreferrer">N3206</a>.</p>
  
  <pre><code>class Base {
      virtual void vfunc();
      void afunc();
  };
  </code></pre>
  
  <p>The following cases will be an error in <code>class Derived : public Base</code>, as mentioned in the Std examples:</p>
  
  <ul>
  <li><code>void vfunk() override;       // err: typo</code></li>
  <li><code>void vfunc(int) override;    // err: argument</code></li>
  <li><code>void vfunc() const override; // err: cv</code>   </li>
  </ul>
  
  <p>But what if the base method is <strong>not virtual</strong>?</p>
  
  <ul>
  <li><code>void afunk() override;  // ?</code></li>
  <li><code>void afunc(int) override;  // ?</code></li>
  <li><code>void afunc() const override // ?;</code></li>
  </ul>