本文整理汇总了C++中Next::skip_match方法的典型用法代码示例。如果您正苦于以下问题:C++ Next::skip_match方法的具体用法?C++ Next::skip_match怎么用?C++ Next::skip_match使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Next
的用法示例。
在下文中一共展示了Next::skip_match方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: match_
bool match_(match_state<BidiIter> &state, Next const &next, mpl::true_) const
{
sub_match_impl<BidiIter> &br = state.sub_match(this->mark_number_);
if(this->max_ > br.repeat_count_)
{
++br.repeat_count_;
// loop back to the expression "pushed" in repeat_begin_matcher::match
if(next.top_match(state, this->back_))
{
return true;
}
else if(--br.repeat_count_ < this->min_)
{
return false;
}
}
// looping finished, continue matching the rest of the pattern
return next.skip_match(state);
}
示例2: match
bool match(match_state<BidiIter> &state, Next const &next) const
{
// prevent repeated zero-width sub-matches from causing infinite recursion
sub_match_impl<BidiIter> &br = state.sub_match(this->mark_number_);
if(br.zero_width_ && br.begin_ == state.cur_)
{
return next.skip_match(state);
}
bool old_zero_width = br.zero_width_;
br.zero_width_ = (br.begin_ == state.cur_);
if(this->match_(state, next, greedy_type()))
{
return true;
}
br.zero_width_ = old_zero_width;
return false;
}