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
生成一系列子范围。每个子范围要么是 base
的一个不匹配给定解析器 parser
的子范围,要么是匹配的给定替换 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;