VS2010 SP1 C++ STL string runtime behavior different between <string.h> and <string>
<p>Here is a simple demonstration of the discrepancy:</p>

<pre><code>//if using &lt;string&gt; you can do cout &lt;&lt; str
//if using &lt;string.h&gt; you must do cout &lt;&lt; str.c_str() (else get runtime error)
#include &lt;string&gt; 
#include &lt;iostream&gt;

using namespace std;

int main( int argc, char* argv[] )
{
    char* pBuf;
    string str = "Hello World";

    //cout &lt;&lt; str.c_str() &lt;&lt; endl;
    cout &lt;&lt; str &lt;&lt; endl;


    return 0;
}
</code></pre>

<p>How can I force the runtime library to always allow cout &lt;&lt; mystr (consistently, without needing to add mystring.c_str() ) ????</p>

<p>My application is mixed (both #include headers exist)....is the runtime confused?</p>
