Recently happened to see the QQ group in the discussion of the cout problem, found that their cout operating mechanism is not clear, so carefully studied the next thing.
The following is the definition of cout in C + + reference
extern ostream cout;
First of all, these two lines of code cannot be compiled in VS, because Ostream does not have an << operator overload for the StringStream type
I added the following code to the Ostream:
As shown, this time the error disappears, of course, can not be compiled successfully, after all, changed the original C + + header file, did not change the library file.
typedef Basic_stringstream<char, char_traits<char>,allocator<char> > StringStream;
In fact, I have been strange stringstream inherited from Ostream, supposedly ostream internal not specifically to rewrite the << operator for StringStream, presumably because Basic_stringstream is the reason for the template, I still need to delve into the following.
About the cout in C + +