title: C++: is std "magically" there? always?
body: <p>As a C++ beginner-level programmer I noticed no matter what IDE/compiler you use, you never need to explicitly include stl (Standard Template Library). Does this mean I can rely on the stl to be "always available"?</p>
  
  <p>I mean if I want to use <code>std::cout</code> for example, I just include the <code>iostream</code> part of the stl:</p>
  
  <pre><code>#include &lt;iostream&gt;
  </code></pre>
  
  <p>...and do not need to do something like <code>#include &lt;std&gt;</code> in the first place to continue with something like:</p>
  
  <pre><code>std::cout &lt;&lt; "Hello world!" &lt;&lt; std::endl;
  </code></pre>
  
  <p>Furthermore: can I rely on consistency for the stl? Does every function/method of the stl always behave the same way? Or are there any changes between C++ releases, operating systems or compilers?</p>
  
  <p>I ask this because other libraries can really be a pain sometimes, when you do not know about certain pitfalls. For example Eigen (for linear algebra stuff) was really hard for me to get it going and I noticed changing behavior between some releases...</p>