How to combine stringstream << and stringsteam.str() into one single line

std::ostringstream ostr; //output string stream
ostr << 123;
string str = ostr.str();

I know the above will work.

But I would like to combine the above two operation into a single line operation like below

string str = (ostr<<123).ToStr(); // not sure if there is to string function;

Can I clear the ostr before <<123? (of course in single line too)?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Sorry to say so, but you can't do that. This is because the expression 'ostr << 123' 'returns' a ostream reference, whose interface does not allow any read access to the object's contents.
tommym121Author Commented:
evilrixSenior Software Engineer (Avast)Commented:
All you have to do is cast the ostream back to a ostringstream

std::string str = static_cast<std::ostringstream &>(ostr << 123).str();

Open in new window


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.