I have this very simple piece of testing code:
std::string a = "A"
std::string b = "B"
std::cout << a + b << std::endl;
While it works in GNU g++, I'm worried if it is portable to pass the temporary a + b
to std::cout
, as in, is std::cout guaranteed to receive the correct piece of memory?
Many thanks!
It's safe. The temporary will not be destroyed until it has been processed by cout
.
For more details, see When are temporaries created as part of a function call destroyed?