Skip to content

Commit

Permalink
Issue 205: Make iostream support optional.
Browse files Browse the repository at this point in the history
  • Loading branch information
JodiTheTigger committed Oct 15, 2015
1 parent 221eeda commit 2cca51c
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
2 changes: 2 additions & 0 deletions format.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1252,11 +1252,13 @@ FMT_FUNC void fmt::print(CStringRef format_str, ArgList args) {
print(stdout, format_str, args);
}

#ifndef FMT_NO_STREAM_LIBRARIES

This comment has been minimized.

Copy link
@vitaut

vitaut Oct 16, 2015

Contributor

I think it's enough to disable fmt::print in the header. If it is not used, it won't be linked in anyway.

This comment has been minimized.

Copy link
@Spartan322

Spartan322 Oct 16, 2015

that macro won't ever exist here, so I don't get why someone would even bother to put it here.

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";
Expand Down
12 changes: 11 additions & 1 deletion format.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,12 @@
#include <limits>
#include <stdexcept>
#include <string>
#include <sstream>
#include <map>

#ifndef FMT_NO_STREAM_LIBRARIES
# include <sstream>
#endif

#if _SECURE_SCL
# include <iterator>
#endif
Expand Down Expand Up @@ -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*.
Expand All @@ -2695,6 +2700,7 @@ void print(CStringRef format_str, ArgList args);
\endrst
*/
void print(std::ostream &os, CStringRef format_str, ArgList args);
#endif

template <typename Char>
void printf(BasicWriter<Char> &w, BasicCStringRef<Char> format, ArgList args) {
Expand Down Expand Up @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions test/format-test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1539,6 +1539,7 @@ TEST(FormatIntTest, FormatDec) {
EXPECT_EQ("42", format_decimal(42ull));
}

#ifndef FMT_NO_STREAM_LIBRARIES

This comment has been minimized.

Copy link
@vitaut

vitaut Oct 16, 2015

Contributor

Same here. The tests should be run with FMT_NO_STREAM_LIBRARIES defined, so no need to check it here.

TEST(FormatTest, Print) {
#if FMT_USE_FILE_DESCRIPTORS
EXPECT_WRITE(stdout, fmt::print("Don't {}!", "panic"), "Don't panic!");
Expand All @@ -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) {
Expand Down

0 comments on commit 2cca51c

Please sign in to comment.