diff options
Diffstat (limited to 'contrib/src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp')
-rw-r--r-- | contrib/src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp | 586 |
1 files changed, 293 insertions, 293 deletions
diff --git a/contrib/src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp b/contrib/src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp index 69aadc4..184cf15 100644 --- a/contrib/src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +++ b/contrib/src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp @@ -1,293 +1,293 @@ - -// 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_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< int N > -struct iter_fold_chunk; - -template<> struct iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next<iter0>::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next<iter0>::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next<iter1>::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next<iter0>::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next<iter1>::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next<iter2>::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next<iter0>::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next<iter1>::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next<iter2>::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next<iter3>::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< int N > -struct iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step; - -template< - typename Last - , typename State - > -struct iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , iter_fold_null_step< Last,State > - , iter_fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step -{ - typedef iter_fold_chunk< -1 >::template result_< - typename mpl::next<First>::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl - : iter_fold_chunk<N> - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} +
+// 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_/iter_fold_impl.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl { namespace aux {
+
+/// forward declaration
+
+template<
+ int N
+ , typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+struct iter_fold_impl;
+
+template< int N >
+struct iter_fold_chunk;
+
+template<> struct iter_fold_chunk<0>
+{
+ template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+ struct result_
+ {
+ typedef First iter0;
+ typedef State state0;
+ typedef state0 state;
+ typedef iter0 iterator;
+ };
+
+ /// ETI workaround
+ template<> struct result_< int,int,int,int >
+ {
+ typedef int state;
+ typedef int iterator;
+ };
+
+};
+
+template<> struct iter_fold_chunk<1>
+{
+ template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+ struct result_
+ {
+ typedef First iter0;
+ typedef State state0;
+ typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
+ typedef typename mpl::next<iter0>::type iter1;
+
+
+ typedef state1 state;
+ typedef iter1 iterator;
+ };
+
+ /// ETI workaround
+ template<> struct result_< int,int,int,int >
+ {
+ typedef int state;
+ typedef int iterator;
+ };
+
+};
+
+template<> struct iter_fold_chunk<2>
+{
+ template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+ struct result_
+ {
+ typedef First iter0;
+ typedef State state0;
+ typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
+ typedef typename mpl::next<iter0>::type iter1;
+ typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
+ typedef typename mpl::next<iter1>::type iter2;
+
+
+ typedef state2 state;
+ typedef iter2 iterator;
+ };
+
+ /// ETI workaround
+ template<> struct result_< int,int,int,int >
+ {
+ typedef int state;
+ typedef int iterator;
+ };
+
+};
+
+template<> struct iter_fold_chunk<3>
+{
+ template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+ struct result_
+ {
+ typedef First iter0;
+ typedef State state0;
+ typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
+ typedef typename mpl::next<iter0>::type iter1;
+ typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
+ typedef typename mpl::next<iter1>::type iter2;
+ typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
+ typedef typename mpl::next<iter2>::type iter3;
+
+
+ typedef state3 state;
+ typedef iter3 iterator;
+ };
+
+ /// ETI workaround
+ template<> struct result_< int,int,int,int >
+ {
+ typedef int state;
+ typedef int iterator;
+ };
+
+};
+
+template<> struct iter_fold_chunk<4>
+{
+ template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+ struct result_
+ {
+ typedef First iter0;
+ typedef State state0;
+ typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
+ typedef typename mpl::next<iter0>::type iter1;
+ typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
+ typedef typename mpl::next<iter1>::type iter2;
+ typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
+ typedef typename mpl::next<iter2>::type iter3;
+ typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
+ typedef typename mpl::next<iter3>::type iter4;
+
+
+ typedef state4 state;
+ typedef iter4 iterator;
+ };
+
+ /// ETI workaround
+ template<> struct result_< int,int,int,int >
+ {
+ typedef int state;
+ typedef int iterator;
+ };
+
+};
+
+template< int N >
+struct iter_fold_chunk
+{
+ template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+ struct result_
+ {
+ typedef iter_fold_impl<
+ 4
+ , First
+ , Last
+ , State
+ , ForwardOp
+ > chunk_;
+
+ typedef iter_fold_impl<
+ ( (N - 4) < 0 ? 0 : N - 4 )
+ , typename chunk_::iterator
+ , Last
+ , typename chunk_::state
+ , ForwardOp
+ > res_;
+
+ typedef typename res_::state state;
+ typedef typename res_::iterator iterator;
+ };
+};
+
+template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+struct iter_fold_step;
+
+template<
+ typename Last
+ , typename State
+ >
+struct iter_fold_null_step
+{
+ typedef Last iterator;
+ typedef State state;
+};
+
+template<>
+struct iter_fold_chunk< -1 >
+{
+ template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+ struct result_
+ {
+ typedef typename if_<
+ typename is_same< First,Last >::type
+ , iter_fold_null_step< Last,State >
+ , iter_fold_step< First,Last,State,ForwardOp >
+ >::type res_;
+
+ typedef typename res_::state state;
+ typedef typename res_::iterator iterator;
+ };
+
+ /// ETI workaround
+ template<> struct result_< int,int,int,int >
+ {
+ typedef int state;
+ typedef int iterator;
+ };
+
+};
+
+template<
+ typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+struct iter_fold_step
+{
+ typedef iter_fold_chunk< -1 >::template result_<
+ typename mpl::next<First>::type
+ , Last
+ , typename apply2< ForwardOp,State,First >::type
+ , ForwardOp
+ > chunk_;
+
+ typedef typename chunk_::state state;
+ typedef typename chunk_::iterator iterator;
+};
+
+template<
+ int N
+ , typename First
+ , typename Last
+ , typename State
+ , typename ForwardOp
+ >
+struct iter_fold_impl
+ : iter_fold_chunk<N>
+ ::template result_< First,Last,State,ForwardOp >
+{
+};
+
+}}}
|