title: What is forward declaration in c++?
body: <p><a href="https://stackoverflow.com/questions/612328/difference-between-struct-and-typedef-struct-in-c/612350#612350">This answer</a> says:</p>
  
  <blockquote>
    <p>… Finally,</p>
  
  <pre><code>typedef struct { ... } Foo;
  </code></pre>
    
    <p>declares an anonymous structure and creates a typedef for it. Thus, with this construct, it doesn't have a name in the tag namespace, only a name in the typedef namespace. This means it also can't be forward-declared. If you want to make a forward declaration, you have to give it a name in the tag namespace.</p>
  </blockquote>
  
  <p>What is forward declaration?</p>