diff --git a/format.cc b/format.cc index a9c978b9c3fd..84b81f8820aa 100644 --- a/format.cc +++ b/format.cc @@ -1252,11 +1252,13 @@ FMT_FUNC void fmt::print(CStringRef format_str, ArgList args) { print(stdout, format_str, args); } +#ifndef FMT_NO_STREAM_LIBRARIES FMT_FUNC void fmt::print(std::ostream &os, CStringRef format_str, ArgList args) { MemoryWriter w; w.write(format_str, args); os.write(w.data(), w.size()); } +#endif FMT_FUNC void fmt::print_colored(Color c, CStringRef format, ArgList args) { char escape[] = "\x1b[30m"; diff --git a/format.h b/format.h index d25eab344440..ecb61fa5a6db 100644 --- a/format.h +++ b/format.h @@ -38,9 +38,12 @@ #include #include #include -#include #include +#ifndef FMT_NO_STREAM_LIBRARIES +# include +#endif + #if _SECURE_SCL # include #endif @@ -2685,6 +2688,8 @@ void print(std::FILE *f, CStringRef format_str, ArgList args); */ void print(CStringRef format_str, ArgList args); + +#ifndef FMT_NO_STREAM_LIBRARIES /** \rst Prints formatted data to the stream *os*. @@ -2695,6 +2700,7 @@ void print(CStringRef format_str, ArgList args); \endrst */ void print(std::ostream &os, CStringRef format_str, ArgList args); +#endif template void printf(BasicWriter &w, BasicCStringRef format, ArgList args) { @@ -3007,7 +3013,11 @@ FMT_VARIADIC(std::string, format, CStringRef) FMT_VARIADIC_W(std::wstring, format, WCStringRef) FMT_VARIADIC(void, print, CStringRef) FMT_VARIADIC(void, print, std::FILE *, CStringRef) + +#ifndef FMT_NO_STREAM_LIBRARIES FMT_VARIADIC(void, print, std::ostream &, CStringRef) +#endif + FMT_VARIADIC(void, print_colored, Color, CStringRef) FMT_VARIADIC(std::string, sprintf, CStringRef) FMT_VARIADIC_W(std::wstring, sprintf, WCStringRef) diff --git a/test/format-test.cc b/test/format-test.cc index 3fceab88462d..e9b522a20de3 100644 --- a/test/format-test.cc +++ b/test/format-test.cc @@ -1539,6 +1539,7 @@ TEST(FormatIntTest, FormatDec) { EXPECT_EQ("42", format_decimal(42ull)); } +#ifndef FMT_NO_STREAM_LIBRARIES TEST(FormatTest, Print) { #if FMT_USE_FILE_DESCRIPTORS EXPECT_WRITE(stdout, fmt::print("Don't {}!", "panic"), "Don't panic!"); @@ -1549,6 +1550,7 @@ TEST(FormatTest, Print) { fmt::print(os, "Don't {}!", "panic"); EXPECT_EQ("Don't panic!", os.str()); } +#endif #if FMT_USE_FILE_DESCRIPTORS TEST(FormatTest, PrintColored) {