mirror of
https://github.com/fmtlib/fmt.git
synced 2025-03-01 01:13:32 +00:00
Get rid of FMT_VARIADIC_VOID
This commit is contained in:
parent
4ece95a754
commit
0d8aca8de3
@ -485,7 +485,7 @@ FMT_FUNC void report_windows_error(
|
|||||||
|
|
||||||
FMT_FUNC void vprint(std::FILE *f, CStringRef format_str, format_args args) {
|
FMT_FUNC void vprint(std::FILE *f, CStringRef format_str, format_args args) {
|
||||||
MemoryWriter w;
|
MemoryWriter w;
|
||||||
w.write(format_str, args);
|
w.vwrite(format_str, args);
|
||||||
std::fwrite(w.data(), 1, w.size(), f);
|
std::fwrite(w.data(), 1, w.size(), f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
22
fmt/format.h
22
fmt/format.h
@ -2181,14 +2181,6 @@ class BasicFormatter : private internal::FormatterBase {
|
|||||||
# define FMT_ASSIGN_wchar_t(n) \
|
# define FMT_ASSIGN_wchar_t(n) \
|
||||||
arr[n] = fmt::internal::MakeValue< fmt::BasicFormatter<wchar_t> >(v##n)
|
arr[n] = fmt::internal::MakeValue< fmt::BasicFormatter<wchar_t> >(v##n)
|
||||||
|
|
||||||
// Defines a variadic function returning void.
|
|
||||||
# define FMT_VARIADIC_VOID(func, arg_type) \
|
|
||||||
template <typename... Args> \
|
|
||||||
void func(arg_type arg0, const Args & ... args) { \
|
|
||||||
auto store = fmt::make_format_args< fmt::BasicFormatter<Char> >(args...); \
|
|
||||||
func(arg0, fmt::format_args(store)); \
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defines a variadic constructor.
|
// Defines a variadic constructor.
|
||||||
# define FMT_VARIADIC_CTOR(ctor, func, arg0_type, arg1_type) \
|
# define FMT_VARIADIC_CTOR(ctor, func, arg0_type, arg1_type) \
|
||||||
template <typename... Args> \
|
template <typename... Args> \
|
||||||
@ -2449,6 +2441,10 @@ class BasicWriter {
|
|||||||
return std::basic_string<Char>(&buffer_[0], buffer_.size());
|
return std::basic_string<Char>(&buffer_[0], buffer_.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vwrite(BasicCStringRef<Char> format, format_args args) {
|
||||||
|
BasicFormatter<Char>(args, *this).format(format);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\rst
|
\rst
|
||||||
Writes formatted data.
|
Writes formatted data.
|
||||||
@ -2474,10 +2470,10 @@ class BasicWriter {
|
|||||||
See also :ref:`syntax`.
|
See also :ref:`syntax`.
|
||||||
\endrst
|
\endrst
|
||||||
*/
|
*/
|
||||||
void write(BasicCStringRef<Char> format, format_args args) {
|
template <typename... Args>
|
||||||
BasicFormatter<Char>(args, *this).format(format);
|
void write(BasicCStringRef<Char> format, const Args & ... args) {
|
||||||
|
vwrite(format, make_format_args<fmt::BasicFormatter<Char>>(args...));
|
||||||
}
|
}
|
||||||
FMT_VARIADIC_VOID(write, BasicCStringRef<Char>)
|
|
||||||
|
|
||||||
BasicWriter &operator<<(int value) {
|
BasicWriter &operator<<(int value) {
|
||||||
write_decimal(value);
|
write_decimal(value);
|
||||||
@ -3134,7 +3130,7 @@ inline void print_colored(Color c, CStringRef format_str,
|
|||||||
|
|
||||||
inline std::string vformat(CStringRef format_str, format_args args) {
|
inline std::string vformat(CStringRef format_str, format_args args) {
|
||||||
MemoryWriter w;
|
MemoryWriter w;
|
||||||
w.write(format_str, args);
|
w.vwrite(format_str, args);
|
||||||
return w.str();
|
return w.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3154,7 +3150,7 @@ inline std::string format(CStringRef format_str, const Args & ... args) {
|
|||||||
|
|
||||||
inline std::wstring vformat(WCStringRef format_str, format_args args) {
|
inline std::wstring vformat(WCStringRef format_str, format_args args) {
|
||||||
WMemoryWriter w;
|
WMemoryWriter w;
|
||||||
w.write(format_str, args);
|
w.vwrite(format_str, args);
|
||||||
return w.str();
|
return w.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ FMT_FUNC void write(std::ostream &os, Writer &w) {
|
|||||||
FMT_FUNC void vprint(std::ostream &os, CStringRef format_str,
|
FMT_FUNC void vprint(std::ostream &os, CStringRef format_str,
|
||||||
format_args args) {
|
format_args args) {
|
||||||
MemoryWriter w;
|
MemoryWriter w;
|
||||||
w.write(format_str, args);
|
w.vwrite(format_str, args);
|
||||||
internal::write(os, w);
|
internal::write(os, w);
|
||||||
}
|
}
|
||||||
} // namespace fmt
|
} // namespace fmt
|
||||||
|
@ -1566,7 +1566,7 @@ TEST(StrTest, Convert) {
|
|||||||
std::string vformat_message(int id, const char *format, fmt::format_args args) {
|
std::string vformat_message(int id, const char *format, fmt::format_args args) {
|
||||||
MemoryWriter w;
|
MemoryWriter w;
|
||||||
w.write("[{}] ", id);
|
w.write("[{}] ", id);
|
||||||
w.write(format, args);
|
w.vwrite(format, args);
|
||||||
return w.str();
|
return w.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,14 +74,3 @@ int result;
|
|||||||
}
|
}
|
||||||
|
|
||||||
MAKE_TEST(test_func)
|
MAKE_TEST(test_func)
|
||||||
|
|
||||||
typedef char Char;
|
|
||||||
|
|
||||||
MAKE_TEST(test_variadic_void)
|
|
||||||
FMT_VARIADIC_VOID(test_variadic_void, const char *)
|
|
||||||
|
|
||||||
TEST(UtilTest, VariadicVoid) {
|
|
||||||
result = 0;
|
|
||||||
test_variadic_void("", 10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
|
|
||||||
EXPECT_EQ(550, result);
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user