title: (MSVC 2017 /WALL & /WX) Including Iostream Produces 800 Warnings
body: <p>Reviewing material for an optimized C++ course next quarter.  The professor for this course is enforcing /WALL and /WX for our project properties.  The problem I'm having is that including the Iostream library produces over 800 warnings.  Here's the code I'm attempting to run:</p>
  <pre><code>#include &quot;pch.h&quot;
  #include &lt;iostream&gt;
  
  int main() {
    std::cout &lt;&lt; &quot;Hello World&quot;;
    return(0);
  }
  </code></pre>
  <p>A few of the warnings that I'm receiving includes:</p>
  <pre><code>C4514 'abs': unreferenced inline function has been removed
  C4774 'sprintf_s': format string in argument 3 is not a string literal
  C4820 'std::basic_ios ...': '7' bytes of padding added after...
  </code></pre>
  <p>Before asking Stack I emailed the Prof to ask about the warnings and was told:</p>
  <blockquote>
  <p>You should be including iostream</p>
  <p>If you get 100 warnings you included a header that's not needed</p>
  </blockquote>
  <p>Is there something I'm missing? I know I wouldn't be able to edit source files for iostream as that's not portable coding.  I looked around to see if I could explicitly include functions such as cout, cin, etc. Yet, I don't feel like this is the correct solution.</p>
  <p>Edit:</p>
  <p>A user requested an example of a more explicit warning message in case there was something missing in there.  Here are a few:</p>
  <pre><code>C415 'abs': referenced inline function has been removed (Project: Hello World) (File: stdlib.h)
  C4710 'int sprintf_s(char *const....: function not inlined. (Project: Hello World) (File: stdio.h)
  </code></pre>
  <p>The professor is using GCC through Visual Studio and our settings are pulled from a repository as premade projects.</p>