Review fixes.
This commit is contained in:
parent
5f6f93b7e5
commit
00b68834a6
@ -1271,16 +1271,13 @@ inline basic_format_arg<Context> make_arg(const T& value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> struct is_reference_wrapper : std::false_type {};
|
template <typename T> struct is_reference_wrapper : std::false_type {};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_reference_wrapper<std::reference_wrapper<T>> : std::true_type {};
|
struct is_reference_wrapper<std::reference_wrapper<T>> : std::true_type {};
|
||||||
|
|
||||||
template <typename T> struct unwrap_reference { using type = T; };
|
template <typename T> const T& unwrap(const T& v) { return v; }
|
||||||
template <typename T> struct unwrap_reference<std::reference_wrapper<T>> {
|
template <typename T> const T& unwrap(const std::reference_wrapper<T>& v) {
|
||||||
using type = T&;
|
return static_cast<const T&>(v);
|
||||||
};
|
}
|
||||||
template <typename T>
|
|
||||||
using unwrap_reference_t = typename unwrap_reference<T>::type;
|
|
||||||
|
|
||||||
class dynamic_arg_list {
|
class dynamic_arg_list {
|
||||||
// Workaround for clang's -Wweak-vtables. Unlike for regular classes, for
|
// Workaround for clang's -Wweak-vtables. Unlike for regular classes, for
|
||||||
@ -1541,8 +1538,8 @@ class dynamic_format_arg_store
|
|||||||
constexpr const internal::named_arg_info<char_type>* zero_ptr{nullptr};
|
constexpr const internal::named_arg_info<char_type>* zero_ptr{nullptr};
|
||||||
data_.insert(data_.begin(), {zero_ptr, 0});
|
data_.insert(data_.begin(), {zero_ptr, 0});
|
||||||
}
|
}
|
||||||
data_.emplace_back(internal::make_arg<Context>(
|
data_.emplace_back(
|
||||||
static_cast<const internal::unwrap_reference_t<T>&>(arg.value)));
|
internal::make_arg<Context>(internal::unwrap(arg.value)));
|
||||||
auto pop_one = [](std::vector<basic_format_arg<Context>>* data) {
|
auto pop_one = [](std::vector<basic_format_arg<Context>>* data) {
|
||||||
data->pop_back();
|
data->pop_back();
|
||||||
};
|
};
|
||||||
@ -1578,7 +1575,7 @@ class dynamic_format_arg_store
|
|||||||
if (internal::const_check(need_copy<T>::value))
|
if (internal::const_check(need_copy<T>::value))
|
||||||
emplace_arg(dynamic_args_.push<stored_type<T>>(arg));
|
emplace_arg(dynamic_args_.push<stored_type<T>>(arg));
|
||||||
else
|
else
|
||||||
emplace_arg(static_cast<const internal::unwrap_reference_t<T>&>(arg));
|
emplace_arg(internal::unwrap(arg));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1622,8 +1619,9 @@ class dynamic_format_arg_store
|
|||||||
if (internal::const_check(need_copy<T>::value)) {
|
if (internal::const_check(need_copy<T>::value)) {
|
||||||
emplace_arg(
|
emplace_arg(
|
||||||
fmt::arg(arg_name, dynamic_args_.push<stored_type<T>>(arg.value)));
|
fmt::arg(arg_name, dynamic_args_.push<stored_type<T>>(arg.value)));
|
||||||
} else
|
} else {
|
||||||
emplace_arg(fmt::arg(arg_name, arg.value));
|
emplace_arg(fmt::arg(arg_name, arg.value));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user