title: Why can one initialize non-const and static const member variables but not static member variables?
body: <pre><code>struct A
  {
      int a = 5;               //OK
      const int b = 5;         //OK 
      static const int c = 5;  //OK 
      static int d = 5;        //Error!
  } 
  
  
  
  error: ISO C++ forbids in-class initialization of non-const static member 'A::d'
  </code></pre>
  
  <p>Why is it so? Can someone explain to me the reasoning behind this?</p>