title: Circular Dependency with forward declaration error
body: <p>In A.hpp file I have a structure, which has a pointer of B class</p>
  
  <pre><code>struct state
  {
      B  *b;
  };
  </code></pre>
  
  <p>In A.hpp file, I added a forward declaration and I included B.hpp file in A.cpp file</p>
  
  <pre><code>//A.hpp
  class B
  </code></pre>
  
  <p>In B.hpp file, a function uses the state, which declared in A.hpp as an argument on the function.</p>
  
  <pre><code>bool function_in_b(state *s)
  </code></pre>
  
  <p>I also added a forward declaration of A in B.hpp file and I added the header file of A, A.hpp in B.cpp file.</p>
  
  <pre><code>//B.hpp
  class A
  </code></pre>
  
  <p>All header files have a header guard. If I try to compile, it won't find 'state' declared in A.hpp. Thus, it won't find the matching function and complains the candidates are</p>
  
  <pre><code>bool function_in_b(int *) 
  </code></pre>
  
  <p>How do I fix this problem?</p>