boost::parser::replace_view
// In header: <boost/parser/replace.hpp> template<std::ranges::viewable_range V, std::ranges::viewable_range ReplacementV, typename Parser, typename GlobalState, typename ErrorHandler, typename SkipParser> struct replace_view { // member classes/structs/unions template<bool Const> struct iterator { // types typedef unspecified I; typedef unspecified S; typedef unspecified ref_t_iter; typedef BOOST_PARSER_SUBRANGE< ref_t_iter > reference_type; typedef unspecified base_type; // public member functions iterator() = default; iterator(unspecified); iterator & operator++(); reference_type operator*() const; }; template<bool Const> struct sentinel { }; // public member functions replace_view() = default; replace_view(V, parser_interface< Parser, GlobalState, ErrorHandler > const &, parser_interface< SkipParser > const &, ReplacementV, trace = trace::off); replace_view(V, parser_interface< Parser, GlobalState, ErrorHandler > const &, ReplacementV, trace = trace::off); V base() const; V base(); V replacement() const; V replacement(); auto begin(); auto end(); auto begin() const; auto end() const; };
为给定的范围 base 生成子范围的范围。每个子范围要么是与给定解析器 parser 不匹配的 base 的子范围,要么是匹配项的给定替换 replacement。
除了模板参数约束外,V 和 ReplacementV 必须是 char 的范围,或者必须具有相同的 UTF 格式,并且 V 和 ReplacementV 必须满足与 std::ranges::join_view 中描述的相同的兼容性要求。
replace_view 公共成员函数replace_view() = default;
replace_view(V base, parser_interface< Parser, GlobalState, ErrorHandler > const & parser, parser_interface< SkipParser > const & skip, ReplacementV replacement, trace trace_mode = trace::off);
replace_view(V base, parser_interface< Parser, GlobalState, ErrorHandler > const & parser, ReplacementV replacement, trace trace_mode = trace::off);
V base() const;
V base();
V replacement() const;
V replacement();
auto begin();
auto end();
auto begin() const;
auto end() const;