title: Forward declaration include, on top of declaration include (ClassFwd.h + Class.h)
body: <p>In Effective C++ (3rd edition), Scott Meyers, in Item 31, suggests that classes should have, on top of their classic Declaration (.h) and Definition (.cpp) files, a Forward Declaration Include File (fwd.h), which class that do not need the full definition can use, instead of forward declaring themselves.</p>
  
  <p>I somewhat see the case for it, but I really don't see this as a viable option... It seems very hard to maintain, rather overkill and hardly necessary.</p>
  
  <p>I can, however, see its use for template forward declarations, which are rather heavy. But for simple classes? It seems to be that it's a pain to maintain and will create a whole lot of almost empty include files that serve a very small purpose... is it worth the hassle?</p>
  
  <p>Here's a example:</p>
  
  <pre><code>// Class.h
  class Class
  {
      Class();
      ~Class();
  };
  
  // ClassFwd.h
  class Class;
  
  // Class.cpp
  Class::Class()
  {
  }
  
  Class::~Class()
  {
  }
  </code></pre>
  
  <p><strong>My question</strong>:</p>
  
  <p>What do you guys think? If this a good practice?</p>
  
  <p><strong>NOTE</strong> I am mostly interested in the arguments FOR this practice, to see if I missed something that would make me agree with Scott Meyers.</p>