BVB Source Codes

mars Show find_iterator.hpp Source code

Return Download mars: download find_iterator.hpp Source code - Download mars Source code - Type:.hpp
  1. //  Boost string_algo library find_iterator.hpp header file  ---------------------------//
  2.  
  3. //  Copyright Pavol Droba 2002-2003.
  4. //
  5. // Distributed under the Boost Software License, Version 1.0.
  6. //    (See accompanying file LICENSE_1_0.txt or copy at
  7. //          http://www.boost.org/LICENSE_1_0.txt)
  8.  
  9. //  See http://www.boost.org/ for updates, documentation, and revision history.
  10.  
  11. #ifndef BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
  12. #define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
  13.  
  14. #include <boost/algorithm/string/config.hpp>
  15. #include <boost/range/iterator_range_core.hpp>
  16. #include <boost/iterator/iterator_facade.hpp>
  17. #include <boost/iterator/iterator_categories.hpp>
  18. #include <boost/function.hpp>
  19.  
  20. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  21.     namespace algorithm {
  22.         namespace detail {
  23.  
  24. //  find_iterator base -----------------------------------------------//
  25.  
  26.             // Find iterator base
  27.             template<typename IteratorT>
  28.             class find_iterator_base
  29.             {
  30.             protected:
  31.                 // typedefs
  32.                 typedef IteratorT input_iterator_type;
  33.                 typedef iterator_range<IteratorT> match_type;
  34.                 typedef function2<
  35.                     match_type,
  36.                     input_iterator_type,
  37.                     input_iterator_type> finder_type;
  38.                
  39.             protected:
  40.             // Protected construction/destruction
  41.  
  42.                 // Default constructor
  43.                 find_iterator_base() {};
  44.                 // Copy construction
  45.                 find_iterator_base( const find_iterator_base& Other ) :
  46.                     m_Finder(Other.m_Finder) {}
  47.                
  48.                 // Constructor
  49.                 template<typename FinderT>
  50.                 find_iterator_base( FinderT Finder, int ) :
  51.                     m_Finder(Finder) {}
  52.  
  53.                 // Destructor
  54.                 ~find_iterator_base() {}
  55.  
  56.                 // Find operation
  57.                 match_type do_find(
  58.                     input_iterator_type Begin,
  59.                     input_iterator_type End ) const
  60.                 {
  61.                     if (!m_Finder.empty())
  62.                     {
  63.                         return m_Finder(Begin,End);
  64.                     }
  65.                     else
  66.                     {
  67.                         return match_type(End,End);
  68.                     }
  69.                 }
  70.  
  71.                 // Check
  72.                 bool is_null() const
  73.                 {
  74.                     return m_Finder.empty();
  75.                 }
  76.  
  77.             private:
  78.                 // Finder
  79.                 finder_type m_Finder;
  80.             };
  81.  
  82.        } // namespace detail
  83.     } // namespace algorithm
  84. } // namespace mars_boost
  85.  
  86.  
  87. #endif  // BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
  88.  
downloadfind_iterator.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top