title: Should static_cast<Derived *>(Base pointer) give compile time error?
body: <p>Should static_cast(Base pointer) give compile time error?</p>
  
  <pre><code>class A
  {
  public:
      A()
      {
  
      }
  };
  
  class B : public  A
  {
   public:
       B()
       {
       }
  };
  
  int main()
  {
      A *a=new A();
      B * b=static_cast&lt;B*&gt;(a);   // Compile Error?
  }
  </code></pre>