find_iterator.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 87 行

HPP
87
字号
//  Boost string_algo library find_iterator.hpp header file  ---------------------------////  Copyright Pavol Droba 2002-2003. Use, modification and//  distribution is subject to 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)//  See http://www.boost.org for updates, documentation, and revision history.#ifndef BOOST_STRING_FIND_ITERATOR_DETAIL_HPP#define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP#include <boost/algorithm/string/config.hpp>#include <boost/algorithm/string/iterator_range.hpp>#include <boost/iterator/iterator_facade.hpp>#include <boost/iterator/iterator_categories.hpp>#include <boost/function.hpp>namespace boost {    namespace algorithm {         namespace detail {//  find_iterator base -----------------------------------------------//            // Find iterator base            template<typename IteratorT>            class find_iterator_base            {            protected:                // typedefs                typedef IteratorT input_iterator_type;                typedef iterator_range<IteratorT> match_type;                typedef function2<                    match_type,                     input_iterator_type,                     input_iterator_type> finder_type;                            protected:            // Protected construction/destruction                // Default constructor                find_iterator_base() {};                // Copy construction                find_iterator_base( const find_iterator_base& Other ) :                    m_Finder(Other.m_Finder) {}                                // Constructor                template<typename FinderT>                find_iterator_base( FinderT Finder, int ) :                    m_Finder(Finder) {}                // Destructor                ~find_iterator_base() {}                // Find operation                match_type do_find(                     input_iterator_type Begin,                    input_iterator_type End ) const                {                    if (!m_Finder.empty())                    {                        return m_Finder(Begin,End);                    }                    else                    {                        return match_type(End,End);                    }                }                // Check                bool is_null() const                {                    return m_Finder.empty();                }            private:                // Finder                finder_type m_Finder;            };       } // namespace detail    } // namespace algorithm} // namespace boost#endif  // BOOST_STRING_FIND_ITERATOR_DETAIL_HPP

⌨️ 快捷键说明

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