title: What is the purpose of ostringstream's string constructor?
body: <p>On MSVC 2005, I have the following code.</p>
  
  <pre><code>std::ostringstream stream("initial string ");
  stream &lt;&lt; 5;
  std::cout &lt;&lt; stream.str();
  </code></pre>
  
  <p>What I expect is:</p>
  
  <pre><code>initial string 5
  </code></pre>
  
  <p>What I get is:</p>
  
  <pre><code>5nitial string
  </code></pre>
  
  <p>Initializing the stream with a string, I would expect the stream to move its position to the end of the initial string. Obviously, STL doesn't agree with me (not the first time).</p>
  
  <p>What's the purpose of such behavior? Is this use case useful for anything? Also, is there a way to advance the stream position to the end of the initial string?</p>