From 7a0237788f2605a97277fff3411906c869f7ff79 Mon Sep 17 00:00:00 2001 From: q66 Date: Tue, 21 Jul 2015 20:25:09 +0100 Subject: [PATCH] ConstStringRange ToString specialization --- ostd/string.hh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ostd/string.hh b/ostd/string.hh index d1bdfe2..c83460e 100644 --- a/ostd/string.hh +++ b/ostd/string.hh @@ -32,13 +32,13 @@ struct StringRangeBase: InputRange< template StringRangeBase(U beg, EnableIf< IsConvertible::value && !IsArray::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 StringRangeBase(U (&beg)[N], EnableIf< IsConvertible::value, bool > = true): p_beg(beg), - p_end(beg + N - (beg[N - 1] == '\0')) { printf("arr\n"); } + p_end(beg + N - (beg[N - 1] == '\0')) {} template StringRangeBase(const StringBase &s, EnableIf< @@ -823,6 +823,14 @@ template<> struct ToString { } }; +template<> struct ToString { + using Argument = ConstStringRange; + using Result = String; + String operator()(const Argument &s) { + return String(s); + } +}; + template struct ToString> { using Argument = Pair; using Result = String;