c++ - std::ostream to QString? -


is there way convert std::ostream qstring?

allow me expand in case useful: writing program in c++/qt , used (not) deal / debug exceptions using std::cout, in example:

std::cout << "error in void cat::eat(const bird &bird): bird has negative weight" << std::endl; 

now want throw errors qstrings , catch them later, write instead:

throw(qstring("error in void cat::eat(const bird &bird): bird has negative weight")); 

my issue i've been overloading operator << can use many objects, instance bird, have written:

std::cout << "error in void cat::eat(const bird &bird): bird " << bird << " has negative weight" << std::endl; 

is there way can throw qstring now? able write like:

std::ostream out; out << "error in void cat::eat(const bird &bird): bird " << bird << " has negative weight" << std::endl; throw(qstring(out)); 

but doesn't work. should do?

you can use std::stringstream follows:

std::stringstream out; //   ^^^^^^ out << "error in void cat::eat(const bird &bird): bird " << bird << " has negative weight" << std::endl; throw(qstring::fromstdstring(out.str())); //           ^^^^^^^^^^^^^^^^^^^^^^^^^^ 

specifically, std::stringstream::str member function std::string, can pass qstring::fromstdstring static member function create qstring.


Comments

Popular posts from this blog

PHP DOM loadHTML() method unusual warning -

python - How to create jsonb index using GIN on SQLAlchemy? -

c# - TransactionScope not rolling back although no complete() is called -