title: Initializing 2 dimensional array of structs in C++
body: <p>I am trying to initialize a 2D array of structs in C++, but am getting an error. Can someone please tell me what am I doing wrong? I have rechecked the braces and they seem to be fine.</p>
  
  <p>My code:</p>
  
  <pre><code>
  struct CornerRotationInfo {
    bool does_breed;
    int breed_slope;
    bool self_inversion;
    int self_slope;
    inline CornerRotationInfo(bool db, int bs, bool si, int ss) : does_breed(db), breed_slope(bs), self_inversion(si), self_slope(ss) {};
  };
  
  #define NO false
  #define YES true
  #define R 1
  #define F -1
  #define H 0
  static const CornerRotationInfo corner_rot_info[3][8] = {
    // { 0, 45, 90, 135
    //  180, 225, 270, 315 }
    {
      { NO, F, NO, F }, {YES, F, NO, H }, {YES, H, NO, R}, {NO, R, YES, R },
      { NO, F, NO, F }, {YES, F, NO, H }, {YES, H, NO, R}, {NO, R, YES, R }
    }, // Falling
    {
      { NO, H, NO, H }, {YES, F, NO, R }, {NO, H, YES, H }, {YES, R, NO, F },
      { NO, H, NO, H }, {YES, F, NO, R }, {NO, H, YES, H }, {YES, R, NO, F }
    }, // Horizontal
    {
      { NO, R, NO, R }, {NO, F, YES, F }, {YES, H, NO, F}, {YES, R, NO, H },
      { NO, R, NO, R }, {NO, F, YES, F }, {YES, H, NO, F}, {YES, R, NO, H }
    }  // Rising
  };
  
  #undef NO
  #undef YES
  #undef R
  #undef F
  #undef H
  
  </code></pre>
  
  <p>The error I am getting is:</p>
  
  <pre>
  Transformation.C:72: error: brace-enclosed initializer used to initialize `const
   CornerRotationInfo'
  </pre>