Simplify append_float_length

This commit is contained in:
Victor Zverovich 2014-12-03 06:33:31 -08:00
parent f3bd9d4241
commit 54f19ff7b2

View File

@ -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