forked from fmtlib/fmt
Introduce str and c_str into the format namespace.
This commit is contained in:
16
format.h
16
format.h
@@ -380,20 +380,24 @@ class ArgInserter {
|
|||||||
return Proxy(f);
|
return Proxy(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string str() const { return Format()->str(); }
|
// Performs formatting and returns a std::string with the output.
|
||||||
|
friend std::string str(Proxy p) {
|
||||||
|
return Format(p)->str();
|
||||||
|
}
|
||||||
|
|
||||||
// Performs formatting and returns a C string with the output.
|
// Performs formatting and returns a C string with the output.
|
||||||
friend const char *c_str(Proxy p) {
|
friend const char *c_str(Proxy p) {
|
||||||
return Format(p)->c_str();
|
return Format(p)->c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Performs formatting and returns a std::string with the output.
|
|
||||||
friend std::string str(Proxy p) {
|
|
||||||
return Format(p)->str();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char *c_str(ArgInserter::Proxy p);
|
||||||
|
std::string str(ArgInserter::Proxy p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using format::internal::c_str;
|
||||||
|
using format::internal::str;
|
||||||
|
|
||||||
// ArgFormatter provides access to the format buffer within custom
|
// ArgFormatter provides access to the format buffer within custom
|
||||||
// Format functions. It is not desirable to pass Formatter to these
|
// Format functions. It is not desirable to pass Formatter to these
|
||||||
// functions because Formatter::operator() is not reentrant and
|
// functions because Formatter::operator() is not reentrant and
|
||||||
|
@@ -729,6 +729,11 @@ TEST(FormatterTest, ArgInserter) {
|
|||||||
EXPECT_STREQ("12", c_str(format("{0}") << 2));
|
EXPECT_STREQ("12", c_str(format("{0}") << 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(FormatterTest, StrNamespace) {
|
||||||
|
fmt::str(Format(""));
|
||||||
|
fmt::c_str(Format(""));
|
||||||
|
}
|
||||||
|
|
||||||
struct CountCalls {
|
struct CountCalls {
|
||||||
int &num_calls;
|
int &num_calls;
|
||||||
|
|
||||||
@@ -791,7 +796,7 @@ TEST(TempFormatterTest, Example) {
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
std::string str(const T &value) {
|
std::string str(const T &value) {
|
||||||
return (fmt::Format("{0}") << value).str();
|
return fmt::str(fmt::Format("{0}") << value);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(StrTest, Convert) {
|
TEST(StrTest, Convert) {
|
||||||
|
Reference in New Issue
Block a user