10 #ifndef FMT_OSTREAM_H_
11 #define FMT_OSTREAM_H_
21 class FormatBuf :
public std::basic_streambuf<Char> {
23 typedef typename std::basic_streambuf<Char>::int_type int_type;
24 typedef typename std::basic_streambuf<Char>::traits_type traits_type;
39 int_type overflow(int_type ch = traits_type::eof()) FMT_OVERRIDE {
40 if (!traits_type::eq_int_type(ch, traits_type::eof()))
41 buffer_.push_back(static_cast<Char>(ch));
45 std::streamsize xsputn(
const Char *s, std::streamsize count) FMT_OVERRIDE {
46 buffer_.
append(s, s + count);
51 Yes &convert(std::ostream &);
56 void operator<<(Null<>);
59 No &operator<<(std::ostream &,
int);
65 value =
sizeof(convert(get<DummyStream>() << get<T>())) ==
sizeof(No)
70 FMT_API
void write(std::ostream &os,
Writer &w);
74 template <
typename Char,
typename ArgFormatter_,
typename T>
76 const Char *&format_str,
const T &value) {
80 std::basic_ostream<Char> output(&format_buf);
85 format_str = f.
format(format_str, MakeArg(str));
97 FMT_API
void print(std::ostream &os, CStringRef format_str, ArgList args);
98 FMT_VARIADIC(
void, print, std::ostream &, CStringRef)
101 #ifdef FMT_HEADER_ONLY
102 # include "ostream.cc"
105 #endif // FMT_OSTREAM_H_
Definition: format.h:1161
Definition: format.h:1420
void append(const U *begin, const U *end)
Definition: format.h:729
std::size_t size() const
Definition: format.h:687