Cleanup argument construction

This commit is contained in:
Victor Zverovich
2023-05-11 18:37:33 -07:00
parent d7592ad8bf
commit ea49c91cd1
5 changed files with 131 additions and 159 deletions

View File

@@ -361,10 +361,11 @@ VISIT_TYPE(unsigned long, unsigned long long);
testing::StrictMock<mock_visitor<decltype(expected)>> visitor; \
EXPECT_CALL(visitor, visit(expected)); \
using iterator = std::back_insert_iterator<buffer<Char>>; \
auto var = value; \
fmt::visit_format_arg( \
visitor, \
fmt::detail::make_arg<fmt::basic_format_context<iterator, Char>>( \
value)); \
var)); \
}
#define CHECK_ARG_SIMPLE(value) \

View File

@@ -1773,20 +1773,6 @@ TEST(format_test, variadic) {
EXPECT_EQ("abc1", fmt::format("{}c{}", "ab", 1));
}
TEST(format_test, dynamic) {
using ctx = fmt::format_context;
auto args = std::vector<fmt::basic_format_arg<ctx>>();
args.emplace_back(fmt::detail::make_arg<ctx>(42));
args.emplace_back(fmt::detail::make_arg<ctx>("abc1"));
args.emplace_back(fmt::detail::make_arg<ctx>(1.5f));
std::string result = fmt::vformat(
"{} and {} and {}",
fmt::format_args(args.data(), static_cast<int>(args.size())));
EXPECT_EQ("42 and abc1 and 1.5", result);
}
TEST(format_test, bytes) {
auto s = fmt::format("{:10}", fmt::bytes("ёжик"));
EXPECT_EQ("ёжик ", s);
@@ -2098,8 +2084,8 @@ TEST(format_test, format_to_n_output_iterator) {
TEST(format_test, vformat_to) {
using context = fmt::format_context;
fmt::basic_format_arg<context> arg = fmt::detail::make_arg<context>(42);
auto args = fmt::basic_format_args<context>(&arg, 1);
int n = 42;
auto args = fmt::make_format_args<context>(n);
auto s = std::string();
fmt::vformat_to(std::back_inserter(s), "{}", args);
EXPECT_EQ("42", s);

View File

@@ -146,14 +146,9 @@ TEST(xchar_test, format_to) {
}
TEST(xchar_test, vformat_to) {
using wcontext = fmt::wformat_context;
fmt::basic_format_arg<wcontext> warg = fmt::detail::make_arg<wcontext>(42);
auto wargs = fmt::basic_format_args<wcontext>(&warg, 1);
auto args = fmt::make_wformat_args(42);
auto w = std::wstring();
fmt::vformat_to(std::back_inserter(w), L"{}", wargs);
EXPECT_EQ(L"42", w);
w.clear();
fmt::vformat_to(std::back_inserter(w), FMT_STRING(L"{}"), wargs);
fmt::vformat_to(std::back_inserter(w), L"{}", args);
EXPECT_EQ(L"42", w);
}