range format fixes

master
Daniel Kolesa 2015-07-04 02:30:46 +01:00
parent 87ff73c810
commit 37367b3c09
1 changed files with 14 additions and 1 deletions

View File

@ -393,7 +393,7 @@ namespace detail {
FmtRangeTest<T>::value, FmtRangeTest<T>::value,
bool bool
> = true) { > = true) {
T range(octa::iter(val)); auto range = octa::iter(val);
if (range.empty()) return 0; if (range.empty()) return 0;
octa::Ptrdiff ret = 0; octa::Ptrdiff ret = 0;
octa::Size fmtn = 0; octa::Size fmtn = 0;
@ -416,6 +416,19 @@ namespace detail {
return ret; return ret;
} }
template<typename R, typename T, octa::Size N>
static inline octa::Ptrdiff write_range(R &writer,
const FormatSpec *fl,
const char *sep,
octa::Size seplen,
const T (&arr)[N],
octa::EnableIf<
!FmtRangeTest<T>::value,
bool
> = true) {
return write_range(writer, fl, sep, seplen, octa::iter(arr));
}
template<typename R, typename T> template<typename R, typename T>
static inline octa::Ptrdiff write_range(R &, const FormatSpec *, static inline octa::Ptrdiff write_range(R &, const FormatSpec *,
const char *, octa::Size, const char *, octa::Size,