13 const auto text = printer.str();
14 stream.write(text.data(),
static_cast<std::streamsize
>(text.size()));
21 stream.width(f.
width);
31 else if (f.
style == 2)
32 stream << std::scientific;
36 auto flags = stream.flags();
37 f.
base = (flags & std::ios_base::basefield) == std::ios_base::hex ? 16
38 : (flags & std::ios_base::basefield) == std::ios_base::oct ? 8
40 f.style = (flags & std::ios_base::floatfield) == std::ios_base::fixed ? 1
41 : (flags & std::ios_base::floatfield) == std::ios_base::scientific ? 2
43 f.precision =
static_cast<int>(stream.precision());
44 f.width =
static_cast<int>(stream.width());
45 f.fill = stream.fill();
49 std::ostringstream stream;
53 const auto text = stream.str();
54 return buffer.
write(text.data(), text.size());
66typename std::enable_if<std::is_class<T>::value && !detail::is_string<T>::value &&
67 detail::is_streamable<std::ostream, T>::value,
74typename std::enable_if<std::is_class<typename std::decay<T>::type>::value && !detail::is_string<typename std::decay<T>::type>::value &&
75 !detail::is_container<typename std::decay<T>::type>::value &&
76 !detail::is_pointer_like<typename std::decay<T>::type>::value &&
77 !detail::is_weak_pointer_like<typename std::decay<T>::type>::value &&
78 !detail::is_tuple_like<typename std::decay<T>::type>::value && !detail::is_complex<typename std::decay<T>::type>::value &&
79 detail::is_streamable<std::ostream, T>::value,
82 printer.
os << printer.tab(level);
Format & format()
Definition buffer.h:38
StringBuffer & write(const char *data, std::size_t size)
Definition buffer.cpp:5
void flush()
Definition buffer.cpp:12
void saveFormat(StringBuffer &buffer, const std::ostream &stream)
Definition std_adapter.h:34
StringBuffer & standardInsert(StringBuffer &buffer, const T &value)
Definition std_adapter.h:48
void applyFormat(std::ostream &stream, const StringBuffer::Format &f)
Definition std_adapter.h:19
Definition assert_text.cpp:5
StringBuffer & operator<<(StringBuffer &buffer, const Printer &printer)
Definition print.h:331
void PrinterExt(Printer &, const T &, unsigned, const char *, rank< 0 >)
PrinterExt is an extension of Printer that allows user to write custom rules for printing.
Definition print.h:370
A functor class Printer for printing a value of any type.
Definition print.h:74
StringBuffer & os
Definition print.h:121
bool use_stringstream
Definition print.h:122
rank is a helper class for Printer to define the priority of overloaded functions.
Definition typetraits.h:43