title: Warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11?
body: <p>I have this code</p>
  
  <pre><code>class Move
  {
      public:
          Move()
          {
              name = "";
              type_num = 18;
              power = 0;
              accuracy = 0;
              type = "???";
          }
  
          Move(string a, int b, int c, int d)
          {
              name = a;
              type_num = b;
              power = c;
              accuracy = d;
              /*lines of code to give type a string variable depending on the value of type_num*/
          }
  
      private:
          string name, type;
          int type_num, power, accuracy;
  };
  
  class Moveset
  {
      public:
          Moveset()
          {
          }               
      private:
          Move slot1{"MOVE 1", rand() % 18, 10*(rand() % 15 + 1), 5 * (rand() % 11 + 10)};
  };
  </code></pre>
  
  <p>And the compiler gave me this Warning for declaring the object slot1 under the private section in class Moveset.</p>
  
  <pre><code>464 83  C:\Users\N\Desktop\C++\Poke\Poke.cpp    [Warning] non-static data member initializers only available with -std=c++11 or -std=gnu++11
  464 15  C:\Users\N\Desktop\C++\Poke\Poke.cpp    [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11
  464 83  C:\Users\N\Desktop\C++\Poke\Poke.cpp    [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11
  </code></pre>
  
  <p>Although it gave me the warning but apparently it didnt affect the programme running. Does it actually affect anything? and what am I doing wrong here?</p>
  
  <p>Edit: And what is the diifference between a static member initializer and non-static member initializer?</p>