BVB Source Codes

mars Show iter_fold_if_impl.hpp Source code

Return Download mars: download iter_fold_if_impl.hpp Source code - Download mars Source code - Type:.hpp
  1.  
  2. // Copyright Aleksey Gurtovoy 2001-2004
  3. // Copyright David Abrahams 2001-2002
  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.  
  10. // *Preprocessed* version of the main "iter_fold_if_impl.hpp" header
  11. // -- DO NOT modify by hand!
  12.  
  13. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace mpl { namespace aux {
  14.  
  15. template< typename Iterator, typename State >
  16. struct iter_fold_if_null_step
  17. {
  18.     typedef State state;
  19.     typedef Iterator iterator;
  20. };
  21.  
  22. template< bool >
  23. struct iter_fold_if_step_impl
  24. {
  25.     template<
  26.           typename Iterator
  27.         , typename State
  28.         , typename StateOp
  29.         , typename IteratorOp
  30.         >
  31.     struct result_
  32.     {
  33.         typedef typename apply2< StateOp,State,Iterator >::type state;
  34.         typedef typename IteratorOp::type iterator;
  35.     };
  36. };
  37.  
  38. template<>
  39. struct iter_fold_if_step_impl<false>
  40. {
  41.     template<
  42.           typename Iterator
  43.         , typename State
  44.         , typename StateOp
  45.         , typename IteratorOp
  46.         >
  47.     struct result_
  48.     {
  49.         typedef State state;
  50.         typedef Iterator iterator;
  51.     };
  52. };
  53.  
  54. template<
  55.       typename Iterator
  56.     , typename State
  57.     , typename ForwardOp
  58.     , typename Predicate
  59.     >
  60. struct iter_fold_if_forward_step
  61. {
  62.     typedef typename apply2< Predicate,State,Iterator >::type not_last;
  63.     typedef typename iter_fold_if_step_impl<
  64.           BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
  65.         >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
  66.  
  67.     typedef typename impl_::state state;
  68.     typedef typename impl_::iterator iterator;
  69. };
  70.  
  71. template<
  72.       typename Iterator
  73.     , typename State
  74.     , typename BackwardOp
  75.     , typename Predicate
  76.     >
  77. struct iter_fold_if_backward_step
  78. {
  79.     typedef typename apply2< Predicate,State,Iterator >::type not_last;
  80.     typedef typename iter_fold_if_step_impl<
  81.           BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
  82.         >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
  83.  
  84.     typedef typename impl_::state state;
  85.     typedef typename impl_::iterator iterator;
  86. };
  87.  
  88. template<
  89.       typename Iterator
  90.     , typename State
  91.     , typename ForwardOp
  92.     , typename ForwardPredicate
  93.     , typename BackwardOp
  94.     , typename BackwardPredicate
  95.     >
  96. struct iter_fold_if_impl
  97. {
  98.  private:
  99.     typedef iter_fold_if_null_step< Iterator,State > forward_step0;
  100.     typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
  101.     typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
  102.     typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
  103.     typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
  104.    
  105.  
  106.     typedef typename if_<
  107.           typename forward_step4::not_last
  108.         , iter_fold_if_impl<
  109.               typename forward_step4::iterator
  110.             , typename forward_step4::state
  111.             , ForwardOp
  112.             , ForwardPredicate
  113.             , BackwardOp
  114.             , BackwardPredicate
  115.             >
  116.         , iter_fold_if_null_step<
  117.               typename forward_step4::iterator
  118.             , typename forward_step4::state
  119.             >
  120.         >::type backward_step4;
  121.  
  122.     typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
  123.     typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
  124.     typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
  125.     typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
  126.    
  127.  
  128.  public:
  129.     typedef typename backward_step0::state state;
  130.     typedef typename backward_step4::iterator iterator;
  131. };
  132.  
  133. }}}
  134.  
downloaditer_fold_if_impl.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