Simplify append_float_length
This commit is contained in:
parent
f3bd9d4241
commit
54f19ff7b2
20
format.h
20
format.h
@ -1493,8 +1493,14 @@ class BasicWriter {
|
||||
// Do not implement!
|
||||
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>
|
||||
Char* append_float_length(Char* format_ptr) { return format_ptr; }
|
||||
void append_float_length(Char *&, T) {}
|
||||
|
||||
friend class internal::ArgFormatter<Char>;
|
||||
friend class internal::PrintfFormatter<Char>;
|
||||
@ -1927,7 +1933,7 @@ void BasicWriter<Char>::write_double(
|
||||
*format_ptr++ = '*';
|
||||
}
|
||||
|
||||
format_ptr = append_float_length<T>(format_ptr);
|
||||
append_float_length(format_ptr, value);
|
||||
*format_ptr++ = type;
|
||||
*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
|
||||
This template provides operations for formatting and writing data into
|
||||
|
Loading…
Reference in New Issue
Block a user