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 + -
显示快捷键?