How do you clear a stringstream variable?
c++, stringstream
Solution
For all the standard library types the member function `empty()` is a query, not a command, i.e. it means "are you empty?" not "please throw away your contents".
The `clear()` member function is inherited from `ios` and is used to clear the error state of the stream, e.g. if a file stream has the error state set to `eofbit` (end-of-file), then calling `clear()` will set the error state back to `goodbit` (no error).
For clearing the contents of a `stringstream`, using:
m.str("");
is correct, although using:
m.str(std::string());
is technically more efficient, because you avoid invoking the `std::string` constructor that takes `const char*`. But any compiler these days should be able to generate the same code in both cases - so I would just go with whatever is more readable.
Problem
I've tried several things already, ``` std::stringstream m; m.empty(); m.clear(); ``` both of which don't work.