mirror of
https://github.com/fmtlib/fmt.git
synced 2026-02-05 17:30:06 +08:00
Fix template argument ordering
This commit is contained in:
parent
d04c9801a7
commit
39e15aff74
@ -114,7 +114,7 @@ FMT_EXPORT template <typename Context> class dynamic_format_arg_store {
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void emplace_arg(const detail::named_arg<char_type, T>& arg) {
|
||||
void emplace_arg(const detail::named_arg<T, char_type>& arg) {
|
||||
if (named_info_.empty())
|
||||
data_.insert(data_.begin(), basic_format_arg<Context>(nullptr, 0));
|
||||
data_.emplace_back(detail::unwrap(arg.value));
|
||||
@ -184,7 +184,7 @@ FMT_EXPORT template <typename Context> class dynamic_format_arg_store {
|
||||
* copying of the argument. The name is always copied into the store.
|
||||
*/
|
||||
template <typename T>
|
||||
void push_back(const detail::named_arg<char_type, T>& arg) {
|
||||
void push_back(const detail::named_arg<T, char_type>& arg) {
|
||||
const char_type* arg_name =
|
||||
dynamic_args_.push<std::basic_string<char_type>>(arg.name).c_str();
|
||||
if FMT_CONSTEXPR20 (need_copy<T>::value) {
|
||||
|
||||
@ -1031,14 +1031,14 @@ struct is_view : std::false_type {};
|
||||
template <typename T>
|
||||
struct is_view<T, bool_constant<sizeof(T) != 0>> : std::is_base_of<view, T> {};
|
||||
|
||||
template <typename Char, typename T> struct named_arg;
|
||||
template <typename T, typename Char> struct named_arg;
|
||||
template <typename T> struct is_named_arg : std::false_type {};
|
||||
template <typename T> struct is_static_named_arg : std::false_type {};
|
||||
|
||||
template <typename Char, typename T>
|
||||
struct is_named_arg<named_arg<Char, T>> : std::true_type {};
|
||||
struct is_named_arg<named_arg<T, Char>> : std::true_type {};
|
||||
|
||||
template <typename Char, typename T> struct named_arg : view {
|
||||
template <typename T, typename Char = char> struct named_arg : view {
|
||||
const Char* name;
|
||||
const T& value;
|
||||
|
||||
@ -2719,7 +2719,7 @@ using vargs =
|
||||
* sufficiently new compilers. See `operator""_a()`.
|
||||
*/
|
||||
template <typename Char, typename T>
|
||||
inline auto arg(const Char* name, const T& arg) -> detail::named_arg<Char, T> {
|
||||
inline auto arg(const Char* name, const T& arg) -> detail::named_arg<T, Char> {
|
||||
return {name, arg};
|
||||
}
|
||||
|
||||
|
||||
@ -3861,7 +3861,7 @@ struct udl_arg {
|
||||
template <typename Char> struct udl_arg {
|
||||
const Char* str;
|
||||
|
||||
template <typename T> auto operator=(T&& value) const -> named_arg<Char, T> {
|
||||
template <typename T> auto operator=(T&& value) const -> named_arg<T, Char> {
|
||||
return {str, std::forward<T>(value)};
|
||||
}
|
||||
};
|
||||
|
||||
@ -760,8 +760,7 @@ template <typename Container> struct all {
|
||||
* formatted as the underlying container.
|
||||
*/
|
||||
FMT_EXPORT
|
||||
template <typename T>
|
||||
struct is_container_adaptor {
|
||||
template <typename T> struct is_container_adaptor {
|
||||
private:
|
||||
template <typename U> static auto check(U* p) -> typename U::container_type;
|
||||
template <typename> static void check(...);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user