⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flow_control.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
///////////////////////////////////////////////////////////////////////////////// flow_control.hpp////  Copyright 2008 Eric Niebler. Distributed under the Boost//  Software License, Version 1.0. (See accompanying file//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)#ifndef BOOST_XPRESSIVE_DETAIL_CORE_FLOW_CONTROL_HPP_EAN_10_04_2005#define BOOST_XPRESSIVE_DETAIL_CORE_FLOW_CONTROL_HPP_EAN_10_04_2005// MS compatible compilers support #pragma once#if defined(_MSC_VER) && (_MSC_VER >= 1020)# pragma once#endif#include <boost/xpressive/detail/detail_fwd.hpp>#include <boost/xpressive/detail/core/regex_impl.hpp>#include <boost/xpressive/detail/core/state.hpp>#include <boost/xpressive/detail/utility/ignore_unused.hpp>namespace boost { namespace xpressive { namespace detail{///////////////////////////////////////////////////////////////////////////////// push_context_match//template<typename BidiIter>inline bool push_context_match(    regex_impl<BidiIter> const &impl  , match_state<BidiIter> &state  , matchable<BidiIter> const &next){    // avoid infinite recursion    // BUGBUG this only catches direct infinite recursion, like sregex::compile("(?R)"), but    // not indirect infinite recursion where two rules invoke each other recursively.    if(state.is_active_regex(impl) && state.cur_ == state.sub_match(0).begin_)    {        return next.match(state);    }    // save state    match_context<BidiIter> context = state.push_context(impl, next, context);    detail::ignore_unused(context);    // match the nested regex and uninitialize the match context    // (reclaims the sub_match objects if necessary)    return state.pop_context(impl, impl.xpr_->match(state));}///////////////////////////////////////////////////////////////////////////////// pop_context_match//template<typename BidiIter>inline bool pop_context_match(match_state<BidiIter> &state){    // save state    // BUGBUG nested regex could have changed state.traits_    match_context<BidiIter> &context(*state.context_.prev_context_);    state.swap_context(context);    // Finished matching the nested regex; now match the rest of the enclosing regex    bool success = context.next_ptr_->match(state);    // restore state    state.swap_context(context);    return success;}}}} // namespace boost::xpressive::detail#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -