From 2ead13a063ba2da819c80a16da70dadcbfde81b2 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Mon, 18 Dec 2017 14:50:10 +1100 Subject: [PATCH] parse: use views over explit begin/end pairs --- parse.cpp | 4 ++-- parse.hpp | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/parse.cpp b/parse.cpp index fcd2036d..97b8e01a 100644 --- a/parse.cpp +++ b/parse.cpp @@ -69,9 +69,9 @@ c_fparse (const char *first, const char *last) #define C_PARSE(T, KLASS) \ template <> \ T \ -util::parse (const char *first, const char *last) \ +util::parse (util::view str) \ { \ - return c_ ## KLASS ## parse (first, last); \ + return c_ ## KLASS ## parse (std::cbegin (str), std::cend (str)); \ } diff --git a/parse.hpp b/parse.hpp index b03b5ee1..829e49ea 100644 --- a/parse.hpp +++ b/parse.hpp @@ -17,6 +17,8 @@ #ifndef CRUFT_UTIL_PARSE_HPP #define CRUFT_UTIL_PARSE_HPP +#include "view.hpp" + #include #include #include @@ -28,16 +30,14 @@ namespace util { /// /// throws std::invalid_argument when the type cannot be parsed. template - T - parse (const char *first, const char *last); + T parse (util::view); //------------------------------------------------------------------------- template - T - parse (const char *str) + T parse (const char *str) { - return parse (str, str + strlen (str)); + return parse (make_view (str)); } @@ -46,7 +46,7 @@ namespace util { T parse (const std::string &str) { - return parse (std::cbegin (str), std::cend (str)); + return parse (make_view (str)); } }