Boost C++ 库

...世界上最受推崇和设计精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码规范

结构体模板 replace_view - Boost C++ 函数库
PrevUpHomeNext

结构体模板 replace_view

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

除了模板参数约束外,VReplacementV 必须是 char 的范围,或者必须具有相同的 UTF 格式,并且 VReplacementV 必须满足与 std::ranges::join_view 中描述的相同兼容性要求。

replace_view 公有成员函数

  1. replace_view() = default;
  2. replace_view(V base, 
                 parser_interface< Parser, GlobalState, ErrorHandler > const & parser, 
                 parser_interface< SkipParser > const & skip, 
                 ReplacementV replacement, trace trace_mode = trace::off);
  3. replace_view(V base, 
                 parser_interface< Parser, GlobalState, ErrorHandler > const & parser, 
                 ReplacementV replacement, trace trace_mode = trace::off);
  4. V base() const;
  5. V base();
  6. V replacement() const;
  7. V replacement();
  8. auto begin();
  9. auto end();
  10. auto begin() const;
  11. auto end() const;

PrevUpHomeNext