Fix compilation on platforms with exotic double (#878)

This commit is contained in:
Victor Zverovich
2018-09-26 08:45:34 -07:00
parent e4ca37ccf6
commit d7f17613f5
3 changed files with 18 additions and 5 deletions

View File

@@ -293,8 +293,13 @@ inline bool use_grisu() {
// Formats value using Grisu2 algorithm:
// https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf
FMT_API void grisu2_format(double value, char *buffer, size_t &size, char type,
int precision, bool write_decimal_point);
template <typename Double>
FMT_API typename std::enable_if<sizeof(Double) == sizeof(uint64_t)>::type
grisu2_format(Double value, char *buffer, size_t &size, char type,
int precision, bool write_decimal_point);
template <typename Double>
inline typename std::enable_if<sizeof(Double) != sizeof(uint64_t)>::type
grisu2_format(Double, char *, size_t &, char, int, bool) {}
template <typename Allocator>
typename Allocator::value_type *allocate(Allocator& alloc, std::size_t n) {