title: Comprehension issue: Precompiled headers & include usage
body: <p>I got a comprehension issue about precompiled headers, and the usage of the #include directive.
  So I got my "stdafx.h" here and include there for example vector, iostream and string. The associated "stdafx.cpp" only includes the "stdafx.h", that's clear.</p>
  
  <p>So if I design my own header file that uses for example "code" that's in vector or iostream, I have to include the header file because the compiler doesn't know the declarations at that time. So why are some posts here (<a href="https://stackoverflow.com/questions/5234311/include-stdafx-h-in-header-or-source-file">include stdafx.h in header or source file?</a>) saying, it's not good to include the "stdafx.h" in other header files even if this file includes the needed declarations of e.g. vectors? So basically it wouldn't matter to include directly a vector or the precompiled header file, both do the same thing.</p>
  
  <p>I know of course, that I don't have to include a header file in another header file if the associated source file includes the needed header file, because the declarations are known at that time. Well, that only works if the header file is included somewhere.</p>
  
  <p>So my question is: Should I avoid including the precompiled header file in any source file and why? And I am a bit confused, because I'm reading contradictory expressions on the web that I shouldn't include anything in header files anyway, or is it O.K. to include in header files?
  So what's right now?</p>