Почему 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, если это "не работает должным образом".

0 ответов

Другие вопросы по тегам