From d59d1a806038af3343506adeff6429418af27170 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Thu, 19 May 2022 18:30:43 -0700 Subject: [PATCH] ircd::spirit: Additional boost iterator ctors for substring_view. --- include/ircd/spirit/parse.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/include/ircd/spirit/parse.h b/include/ircd/spirit/parse.h index 09583dcb8..8ef56ccbf 100644 --- a/include/ircd/spirit/parse.h +++ b/include/ircd/spirit/parse.h @@ -137,16 +137,20 @@ boost::spirit::qi::make_primitive struct ircd::spirit::substring_view :ircd::string_view { - using _iterator = boost::spirit::karma::detail::indirect_iterator; + using _iterator = const char *; using _iterator_range = boost::iterator_range<_iterator>; + using _indirect_iterator = karma::detail::indirect_iterator<_iterator>; + using _indirect_iterator_range = boost::iterator_range<_indirect_iterator>; + + explicit substring_view(const _iterator_range &range) + :ircd::string_view(std::addressof(*range.begin()), std::addressof(*range.end())) + {} + + explicit substring_view(const _indirect_iterator_range &range) + :ircd::string_view(std::addressof(*range.begin()), std::addressof(*range.end())) + {} using ircd::string_view::string_view; - explicit substring_view(const _iterator_range &range) - :ircd::string_view - { - std::addressof(*range.begin()), std::addressof(*range.end()) - } - {} }; /// Execute the parse. The start pointer is advanced upon successful execution.