Вы можете использовать std::ostream_iterator
.
std::stringstream ss;
std::copy(reinterpret_cast<const char*>(&tmp_time),
reinterpret_cast<const char*>(&tmp_time) + sizeof tmp_time,
std::ostream_iterator<int>(ss, " "));
Вам необходимо решить, какой тип использовать с ним.Я использую int
для печати значений в виде целых чисел со знаком и использую один пробел в качестве разделителя.Вы можете выбрать что-то другое в зависимости от того, чего хотите достичь.
Использование std::back_inserter
не работает с потоками, потому что его целью является работа с контейнерами.Он создает std::back_inserter_iterator
, который вызывает push_back
функцию-член в переданном контейнере.Также предполагается, что Container
имеет типы членов value_type
, const_reference
и другие (вы проверяете, как они используются здесь ).
Вот пример: итератор, возвращаемый std::back_inserter
имеет operator=
, определенное так:
back_insert_iterator<Container> &operator=(typename Container::value_type &&value);
Так как std::stringstream
не определено value_type
, компиляция не удалась.