title: C++ error: expected primary-expression before ‘.’ token
body: <p>I looked at the earlier questions but still i was not satisfied, hence i am posting this.
  I was trying to compile the C++ code written by someone else.</p>
  
  <pre><code>/*
  file1.h
  */
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  typedef struct
  {
      struct
      {   
          unsigned member1;
          unsigned  member2; 
      } str1;
  
      struct
      {
          unsigned member3;
          unsigned  member4; 
      } str2;
  
      struct
      {
          unsigned member5;
          unsigned  member6; 
      } str3;
  } CONFIG_T;
  
  
  
  /* 
  file1.c
  */
  CONFIG_T  cfg =
  {
      .str1 = { 0x01, 0x02 },
      .str2 = { 0x03, 0x04 },
      .str3 = { 0x05, 0x06 }
  };
  </code></pre>
  
  <p>Compiled with std C++11 and i get below error. Why the '.' has been used in code 
  while      assigning values ?</p>
  
  <pre><code>home $$  g++ -c -std=gnu++0x  initialze_list.cpp
  
  initialze_list.cpp:34: error: expected primary-expression before ‘.’ token
  
  initialze_list.cpp:35: error: expected primary-expression before ‘.’ token
  
  initialze_list.cpp:36: error: expected primary-expression before ‘.’ token
  </code></pre>
  
  <p>I was not able to understand the reason for error. Please help.</p>