Hmm ok, the overload seems to be in <string>. I looked in the ostream reference. http://www.cplusplus.com/reference/string/string/operator%3C%3C/
Never knew that, I always converted to c_str() when working with streams.
I thought <string> would be included through some other headers, why else would I be able to use string? But it seems you have to include it additionally.