title: Should I continue to include headers in my source file if they are already included in the precompiled header?
body: <p>Surprisingly, the only <em>really</em> similar question I found (<em><a href="https://stackoverflow.com/q/23683014/3258851">Advantages of removing includes which are already in precompiled header?</a></em>) only asks for possible compile time gains, and mentions there are disadvantages but without specifying what these might be. There are other <a href="https://stackoverflow.com/q/3691077/3258851">related</a> <a href="https://stackoverflow.com/q/41614024/3258851">questions</a> but these concern including headers in headers and not directly in translation units, so I wanted to ask specifically about this.</p>
  
  <p>Consider:</p>
  
  <p><strong>precompile.hpp</strong></p>
  
  <pre><code>#ifndef PRECOMPILE_H
  #define PRECOMPILE_H
  
  #include &lt;string&gt;
  #include &lt;iostream&gt;
  
  #endif // PRECOMPILE_H
  </code></pre>
  
  <p><strong>precompile.cpp</strong></p>
  
  <pre><code>#include "precompile.hpp"
  </code></pre>
  
  <p><strong>main.cpp</strong></p>
  
  <pre><code>#include "precompile.hpp"
  
  #include &lt;string&gt;
  #include &lt;iostream&gt;
  
  int main()
  {
      std::string str = "hello";
      std::cout &lt;&lt; str &lt;&lt; "\n";
  }
  </code></pre>
  
  <p><strong>Are there any major recommendations</strong> as to whether or not to explicitly include, in the source file, headers that are precompiled (<code>&lt;string&gt;</code> and <code>&lt;iostream&gt;</code> in my example)?</p>