Почему ostream::operator<< разрешает использование ostringstream arg?
Это производит мусор:
#include <iostream>
#include <sstream>
main()
{
std::ostringstream s1;
s1 << "s" << 1;
std::cout << s1 << std::endl;
}
Это производит мусор. Я понимаю, что исправить это использовать s1.str()
, Мне интересно почему ostream::operator<<
может взять ostringstream
arg, если это "не работает должным образом".