forked from fmtlib/fmt
Simplify append_float_length
This commit is contained in:
20
format.h
20
format.h
@ -1493,8 +1493,14 @@ class BasicWriter {
|
|||||||
// Do not implement!
|
// Do not implement!
|
||||||
void operator<<(typename internal::CharTraits<Char>::UnsupportedStrType);
|
void operator<<(typename internal::CharTraits<Char>::UnsupportedStrType);
|
||||||
|
|
||||||
|
// Appends floating-point length specifier to the format string.
|
||||||
|
// The second argument is only used for overload resolution.
|
||||||
|
void append_float_length(Char *&format_ptr, long double) {
|
||||||
|
*format_ptr++ = 'L';
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Char* append_float_length(Char* format_ptr) { return format_ptr; }
|
void append_float_length(Char *&, T) {}
|
||||||
|
|
||||||
friend class internal::ArgFormatter<Char>;
|
friend class internal::ArgFormatter<Char>;
|
||||||
friend class internal::PrintfFormatter<Char>;
|
friend class internal::PrintfFormatter<Char>;
|
||||||
@ -1927,7 +1933,7 @@ void BasicWriter<Char>::write_double(
|
|||||||
*format_ptr++ = '*';
|
*format_ptr++ = '*';
|
||||||
}
|
}
|
||||||
|
|
||||||
format_ptr = append_float_length<T>(format_ptr);
|
append_float_length(format_ptr, value);
|
||||||
*format_ptr++ = type;
|
*format_ptr++ = type;
|
||||||
*format_ptr = '\0';
|
*format_ptr = '\0';
|
||||||
|
|
||||||
@ -1981,16 +1987,6 @@ void BasicWriter<Char>::write_double(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <> template <> inline char* BasicWriter<char>::append_float_length<long double>( char* format_ptr) {
|
|
||||||
*format_ptr++ = 'L';
|
|
||||||
return format_ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <> template <> inline wchar_t* BasicWriter<wchar_t>::append_float_length<long double>( wchar_t* format_ptr) {
|
|
||||||
*format_ptr++ = 'L';
|
|
||||||
return format_ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\rst
|
\rst
|
||||||
This template provides operations for formatting and writing data into
|
This template provides operations for formatting and writing data into
|
||||||
|
Reference in New Issue
Block a user