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);
|
||||
}
|
||||
|
||||
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.
|
||||
friend const char *c_str(Proxy p) {
|
||||
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
|
||||
// Format functions. It is not desirable to pass Formatter to these
|
||||
// functions because Formatter::operator() is not reentrant and
|
||||
|
@@ -729,6 +729,11 @@ TEST(FormatterTest, ArgInserter) {
|
||||
EXPECT_STREQ("12", c_str(format("{0}") << 2));
|
||||
}
|
||||
|
||||
TEST(FormatterTest, StrNamespace) {
|
||||
fmt::str(Format(""));
|
||||
fmt::c_str(Format(""));
|
||||
}
|
||||
|
||||
struct CountCalls {
|
||||
int &num_calls;
|
||||
|
||||
@@ -791,7 +796,7 @@ TEST(TempFormatterTest, Example) {
|
||||
|
||||
template <typename T>
|
||||
std::string str(const T &value) {
|
||||
return (fmt::Format("{0}") << value).str();
|
||||
return fmt::str(fmt::Format("{0}") << value);
|
||||
}
|
||||
|
||||
TEST(StrTest, Convert) {
|
||||
|
Reference in New Issue
Block a user