Add support for StringRef in BasicFormatter.

This commit is contained in:
Victor Zverovich 2013-11-08 09:53:50 -07:00
parent 00c9fcf1fe
commit d3ec9a1316
2 changed files with 9 additions and 0 deletions

View File

@ -862,6 +862,11 @@ class BasicFormatter {
string.size = value.size(); string.size = value.size();
} }
Arg(StringRef value) : type(STRING), formatter(0) {
string.value = value.c_str();
string.size = value.size();
}
template <typename T> template <typename T>
Arg(const T &value) : type(CUSTOM), formatter(0) { Arg(const T &value) : type(CUSTOM), formatter(0) {
custom.value = &value; custom.value = &value;

View File

@ -1091,6 +1091,10 @@ TEST(FormatterTest, FormatString) {
EXPECT_EQ("test", str(Format("{0}") << std::string("test"))); EXPECT_EQ("test", str(Format("{0}") << std::string("test")));
} }
TEST(FormatterTest, FormatStringRef) {
EXPECT_EQ("test", str(Format("{0}") << StringRef("test")));
}
TEST(FormatterTest, FormatUsingIOStreams) { TEST(FormatterTest, FormatUsingIOStreams) {
EXPECT_EQ("a string", str(Format("{0}") << TestString("a string"))); EXPECT_EQ("a string", str(Format("{0}") << TestString("a string")));
std::string s = str(fmt::Format("The date is {0}") << Date(2012, 12, 9)); std::string s = str(fmt::Format("The date is {0}") << Date(2012, 12, 9));