forked from OctaForge/libostd
ConstStringRange ToString specialization
parent
aa9bdb3ec2
commit
7a0237788f
|
@ -32,13 +32,13 @@ struct StringRangeBase: InputRange<
|
||||||
template<typename U>
|
template<typename U>
|
||||||
StringRangeBase(U beg, EnableIf<
|
StringRangeBase(U beg, EnableIf<
|
||||||
IsConvertible<U, T *>::value && !IsArray<U>::value, bool
|
IsConvertible<U, T *>::value && !IsArray<U>::value, bool
|
||||||
> = true): p_beg(beg), p_end((T *)beg + strlen(beg)) { printf("ptr\n"); }
|
> = true): p_beg(beg), p_end((T *)beg + strlen(beg)) {}
|
||||||
|
|
||||||
template<typename U, Size N>
|
template<typename U, Size N>
|
||||||
StringRangeBase(U (&beg)[N], EnableIf<
|
StringRangeBase(U (&beg)[N], EnableIf<
|
||||||
IsConvertible<U *, T *>::value, bool
|
IsConvertible<U *, T *>::value, bool
|
||||||
> = true): p_beg(beg),
|
> = true): p_beg(beg),
|
||||||
p_end(beg + N - (beg[N - 1] == '\0')) { printf("arr\n"); }
|
p_end(beg + N - (beg[N - 1] == '\0')) {}
|
||||||
|
|
||||||
template<typename U, typename A>
|
template<typename U, typename A>
|
||||||
StringRangeBase(const StringBase<U, A> &s, EnableIf<
|
StringRangeBase(const StringBase<U, A> &s, EnableIf<
|
||||||
|
@ -823,6 +823,14 @@ template<> struct ToString<StringRange> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<> struct ToString<ConstStringRange> {
|
||||||
|
using Argument = ConstStringRange;
|
||||||
|
using Result = String;
|
||||||
|
String operator()(const Argument &s) {
|
||||||
|
return String(s);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
template<typename T, typename U> struct ToString<Pair<T, U>> {
|
template<typename T, typename U> struct ToString<Pair<T, U>> {
|
||||||
using Argument = Pair<T, U>;
|
using Argument = Pair<T, U>;
|
||||||
using Result = String;
|
using Result = String;
|
||||||
|
|
Loading…
Reference in New Issue