title: <insert name of struct> was not declared in this scope
body: <p><a href="http://pastebin.com/4gvcQm7P" rel="nofollow">http://pastebin.com/4gvcQm7P</a></p>
  
  <pre><code>#include &lt;iostream&gt;
  
  using namespace std;
  
  int GenerateID()
  {
      static int nextID = 0;
      return nextID++;
  }
  
  void PrintInformation(Employee EmployeeName)
  {
      cout &lt;&lt; EmployeeName &lt;&lt; "'s ID is: " &lt;&lt; EmployeeName.ID &lt;&lt; endl;
      cout &lt;&lt; EmployeeName &lt;&lt; "'s age is: " &lt;&lt; EmployeeName.age &lt;&lt; endl;
      cout &lt;&lt; EmployeeName &lt;&lt; "'s wage is: " &lt;&lt; EmployeeName.wage &lt;&lt; endl;
  }
  
  int main()
  {
  
      struct Employee
      {
          int ID;
          int age;
          float wage;
      };
  
      Employee Dominic;
      Employee Jeffrey;
  
      Dominic.ID = GenerateID();
      Dominic.age = 22;
      Dominic.wage = 7.10;
  
      Jeffrey.ID = GenerateID();
      Jeffrey.age = 28;
      Dominic.wage = 7.10;
  
      PrintInformation(Dominic);
      PrintInformation(Jeffrey);
  
      return 0;
  }
  
  /*
  C:\CBProjects\Practise\main.cpp|11|error: variable or field 'PrintInformation' declared void|
  C:\CBProjects\Practise\main.cpp|11|error: 'Employee' was not declared in this scope|
  C:\CBProjects\Practise\main.cpp||In function 'int main()':|
  C:\CBProjects\Practise\main.cpp|39|error: 'PrintInformation' was not declared in this scope|
  ||=== Build finished: 3 errors, 0 warnings (0 minutes, 0 seconds) ===|
  */
  </code></pre>
  
  <p>The above pastebin link shows the code I used and the build report. Following this report I attempted to forward declare the struct without including members and then there is an 'incomplete type' error.</p>
  
  <p>What is the solution?</p>
  
  <p>Edit: I'm using c++11</p>
  
  <p>Edit 2: Here is what happens if I try to forward declare the struct, including the members:</p>
  
  <p><a href="http://pastebin.com/rrt4Yjes#" rel="nofollow">http://pastebin.com/rrt4Yjes#</a></p>