Forward Declarations and Includes
<p>When working with a library, whether it be my own or external, there are lot of classes with forward declarations. The same classes also have includes as well depending on the situation. When I use a certain class, I need to know whether certain objects that the class uses, are forward declared or are they #include(d). The reason is I want to know whether I should be including both headers or just one. </p>

<p>Now I know it is fairly simple to check, just compile (or go through all the headers until you find the object in question either #include(d) or forward declared). But with large projects, a simple compile takes a long time, and going into each include file to check whether the class in question is being included or forward declared is tedious, especially if it is a few levels deep. To illustrate the problem further:</p>

<blockquote>
  <p>Class A is a Class B is a Class C
  which has a pointer to Class Foo</p>
</blockquote>

<p>I include Class A and want to know whether Class Foo is ready for use right away, or whether I have to do the following:</p>

<pre><code>#include "ClassA.h"
#include "ClassFoo.h"
</code></pre>

<p>So, is there a quick and easy way to find out about this dependency without compiling or going into the depended headers? (one of the reasons I ask this question is because I want to eventually make an add-in for VS and/or stand-alone program for this if the functionality does not already exist)</p>

<p>Thanks!</p>
