17#ifndef TOOLBOX_UTIL_STREAM_HPP
18#define TOOLBOX_UTIL_STREAM_HPP
22#include <experimental/iterator>
25inline namespace util {
39template <std::
size_t MaxN>
47 setp(storage_->begin(), storage_->end());
68 setp(
nullptr,
nullptr);
77 setp(storage_->begin(), storage_->end());
87 auto*
const begin =
static_cast<char*
>(storage_.get());
90 setp(
nullptr,
nullptr);
97template <std::
size_t MaxN>
102 : std::ostream{
nullptr}
132 buf_.set_storage(std::move(
storage));
146template <std::
size_t MaxN>
172template <std::
size_t MaxN>
210template <std::
size_t MaxN,
typename ValueT>
213 static_cast<std::ostream&
>(os) << std::forward<ValueT>(
val);
223 (..., [&os](
const auto& arg) { os <<
DelimT << arg; }(args));
230template <
typename ValueT>
231ostream_joiner<char>& operator<<(ostream_joiner<char>& osj,
const ValueT& value)
ostream & operator<<(ostream &os, const pair< T, U > &p)