Index: third_party/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp |
diff --git a/third_party/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp b/third_party/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7a07414adff9a483ab39c8db5a4aa8af14f4e99e |
--- /dev/null |
+++ b/third_party/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp |
@@ -0,0 +1,295 @@ |
+ |
+// Copyright Aleksey Gurtovoy 2000-2004 |
+// |
+// 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) |
+// |
+ |
+// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header |
+// -- DO NOT modify by hand! |
+ |
+namespace boost { namespace mpl { namespace aux { |
+ |
+/// forward declaration |
+ |
+template< |
+ long N |
+ , typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+struct reverse_fold_impl; |
+ |
+template< long N > |
+struct reverse_fold_chunk; |
+ |
+template<> struct reverse_fold_chunk<0> |
+{ |
+ template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+ struct result_ |
+ { |
+ typedef First iter0; |
+ typedef State fwd_state0; |
+ typedef fwd_state0 bkwd_state0; |
+ typedef bkwd_state0 state; |
+ typedef iter0 iterator; |
+ }; |
+}; |
+ |
+template<> struct reverse_fold_chunk<1> |
+{ |
+ template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+ struct result_ |
+ { |
+ typedef First iter0; |
+ typedef State fwd_state0; |
+ typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1; |
+ typedef typename mpl::next<iter0>::type iter1; |
+ |
+ |
+ typedef fwd_state1 bkwd_state1; |
+ typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0; |
+ typedef bkwd_state0 state; |
+ typedef iter1 iterator; |
+ }; |
+}; |
+ |
+template<> struct reverse_fold_chunk<2> |
+{ |
+ template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+ struct result_ |
+ { |
+ typedef First iter0; |
+ typedef State fwd_state0; |
+ typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1; |
+ typedef typename mpl::next<iter0>::type iter1; |
+ typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2; |
+ typedef typename mpl::next<iter1>::type iter2; |
+ |
+ |
+ typedef fwd_state2 bkwd_state2; |
+ typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1; |
+ typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0; |
+ |
+ |
+ typedef bkwd_state0 state; |
+ typedef iter2 iterator; |
+ }; |
+}; |
+ |
+template<> struct reverse_fold_chunk<3> |
+{ |
+ template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+ struct result_ |
+ { |
+ typedef First iter0; |
+ typedef State fwd_state0; |
+ typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1; |
+ typedef typename mpl::next<iter0>::type iter1; |
+ typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2; |
+ typedef typename mpl::next<iter1>::type iter2; |
+ typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3; |
+ typedef typename mpl::next<iter2>::type iter3; |
+ |
+ |
+ typedef fwd_state3 bkwd_state3; |
+ typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2; |
+ typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1; |
+ typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0; |
+ |
+ |
+ typedef bkwd_state0 state; |
+ typedef iter3 iterator; |
+ }; |
+}; |
+ |
+template<> struct reverse_fold_chunk<4> |
+{ |
+ template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+ struct result_ |
+ { |
+ typedef First iter0; |
+ typedef State fwd_state0; |
+ typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1; |
+ typedef typename mpl::next<iter0>::type iter1; |
+ typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2; |
+ typedef typename mpl::next<iter1>::type iter2; |
+ typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3; |
+ typedef typename mpl::next<iter2>::type iter3; |
+ typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4; |
+ typedef typename mpl::next<iter3>::type iter4; |
+ |
+ |
+ typedef fwd_state4 bkwd_state4; |
+ typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3; |
+ typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2; |
+ typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1; |
+ typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0; |
+ |
+ |
+ typedef bkwd_state0 state; |
+ typedef iter4 iterator; |
+ }; |
+}; |
+ |
+template< long N > |
+struct reverse_fold_chunk |
+{ |
+ template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+ struct result_ |
+ { |
+ typedef First iter0; |
+ typedef State fwd_state0; |
+ typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1; |
+ typedef typename mpl::next<iter0>::type iter1; |
+ typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2; |
+ typedef typename mpl::next<iter1>::type iter2; |
+ typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3; |
+ typedef typename mpl::next<iter2>::type iter3; |
+ typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4; |
+ typedef typename mpl::next<iter3>::type iter4; |
+ |
+ |
+ typedef reverse_fold_impl< |
+ ( (N - 4) < 0 ? 0 : N - 4 ) |
+ , iter4 |
+ , Last |
+ , fwd_state4 |
+ , BackwardOp |
+ , ForwardOp |
+ > nested_chunk; |
+ |
+ typedef typename nested_chunk::state bkwd_state4; |
+ typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3; |
+ typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2; |
+ typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1; |
+ typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0; |
+ |
+ |
+ typedef bkwd_state0 state; |
+ typedef typename nested_chunk::iterator iterator; |
+ }; |
+}; |
+ |
+template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+struct reverse_fold_step; |
+ |
+template< |
+ typename Last |
+ , typename State |
+ > |
+struct reverse_fold_null_step |
+{ |
+ typedef Last iterator; |
+ typedef State state; |
+}; |
+ |
+template<> |
+struct reverse_fold_chunk< -1 > |
+{ |
+ template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+ struct result_ |
+ { |
+ typedef typename if_< |
+ typename is_same< First,Last >::type |
+ , reverse_fold_null_step< Last,State > |
+ , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > |
+ >::type res_; |
+ |
+ typedef typename res_::state state; |
+ typedef typename res_::iterator iterator; |
+ }; |
+}; |
+ |
+template< |
+ typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+struct reverse_fold_step |
+{ |
+ typedef reverse_fold_chunk< -1 >::template result_< |
+ typename mpl::next<First>::type |
+ , Last |
+ , typename apply2<ForwardOp,State, typename deref<First>::type>::type |
+ , BackwardOp |
+ , ForwardOp |
+ > nested_step; |
+ |
+ typedef typename apply2< |
+ BackwardOp |
+ , typename nested_step::state |
+ , typename deref<First>::type |
+ >::type state; |
+ |
+ typedef typename nested_step::iterator iterator; |
+}; |
+ |
+template< |
+ long N |
+ , typename First |
+ , typename Last |
+ , typename State |
+ , typename BackwardOp |
+ , typename ForwardOp |
+ > |
+struct reverse_fold_impl |
+ : reverse_fold_chunk<N> |
+ ::template result_< First,Last,State,BackwardOp,ForwardOp > |
+{ |
+}; |
+ |
+}}} |