The strstream
returned a char *
that was very difficult to manage, as nowhere was it stated how it had been allocated. It was thus impossible to know if you should delete it or call free() on it or do something else entirely. About the only really satisfactory way to deallocate it was to hand it back to the strstream
via the freeze()
function. This was sufficiently non-obvious, that lots of people got it wrong. The stringstream
returns a string object which manages itself, which is far less error prone.
There was also the issue of having to use ends
to terminate the string, but I believe the deallocation problem was the main reason for deprecation.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…