]> git.lyx.org Git - features.git/blobdiff - boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp
boost: add eol property
[features.git] / boost / boost / mpl / aux_ / preprocessed / bcc_pre590 / reverse_fold_impl.hpp
index e453bcade71c0fa8666996b72f31715ab4949548..372f0d260ae7993c0ed7e8add707af1875487d75 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "reverse_fold_impl.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl { namespace aux {\r
-\r
-/// forward declaration\r
-\r
-template<\r
-      long N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_fold_impl;\r
-\r
-template< long N >\r
-struct reverse_fold_chunk;\r
-\r
-template<> struct reverse_fold_chunk<0>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef fwd_state0 bkwd_state0;\r
-        typedef bkwd_state0 state;\r
-        typedef iter0 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_fold_chunk<1>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        \r
-\r
-        typedef fwd_state1 bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        typedef bkwd_state0 state;\r
-        typedef iter1 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_fold_chunk<2>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        \r
-\r
-        typedef fwd_state2 bkwd_state2;\r
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter2 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_fold_chunk<3>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        \r
-\r
-        typedef fwd_state3 bkwd_state3;\r
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter3 iterator;\r
-    };\r
-};\r
-\r
-template<> struct reverse_fold_chunk<4>\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;\r
-        typedef typename mpl::next<iter3>::type iter4;\r
-        \r
-\r
-        typedef fwd_state4 bkwd_state4;\r
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;\r
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef iter4 iterator;\r
-    };\r
-};\r
-\r
-template< long N >\r
-struct reverse_fold_chunk\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef First iter0;\r
-        typedef State fwd_state0;\r
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
-        typedef typename mpl::next<iter0>::type iter1;\r
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
-        typedef typename mpl::next<iter1>::type iter2;\r
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
-        typedef typename mpl::next<iter2>::type iter3;\r
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;\r
-        typedef typename mpl::next<iter3>::type iter4;\r
-        \r
-\r
-        typedef reverse_fold_impl<\r
-              ( (N - 4) < 0 ? 0 : N - 4 )\r
-            , iter4\r
-            , Last\r
-            , fwd_state4\r
-            , BackwardOp\r
-            , ForwardOp\r
-            > nested_chunk;\r
-\r
-        typedef typename nested_chunk::state bkwd_state4;\r
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;\r
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
-        \r
-\r
-        typedef bkwd_state0 state;\r
-        typedef typename nested_chunk::iterator iterator;\r
-    };\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_fold_step;\r
-\r
-template<\r
-      typename Last\r
-    , typename State\r
-    >\r
-struct reverse_fold_null_step\r
-{\r
-    typedef Last iterator;\r
-    typedef State state;\r
-};\r
-\r
-template<>\r
-struct reverse_fold_chunk< -1 >\r
-{\r
-    template<\r
-          typename First\r
-        , typename Last\r
-        , typename State\r
-        , typename BackwardOp\r
-        , typename ForwardOp\r
-        >\r
-    struct result_\r
-    {\r
-        typedef typename if_<\r
-              typename is_same< First,Last >::type\r
-            , reverse_fold_null_step< Last,State >\r
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >\r
-            >::type res_;\r
-\r
-        typedef typename res_::state state;\r
-        typedef typename res_::iterator iterator;\r
-    };\r
-};\r
-\r
-template<\r
-      typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_fold_step\r
-{\r
-    typedef reverse_fold_chunk< -1 >::template result_<\r
-          typename mpl::next<First>::type\r
-        , Last\r
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type\r
-        , BackwardOp\r
-        , ForwardOp\r
-        > nested_step;\r
-\r
-    typedef typename apply2<\r
-          BackwardOp\r
-        , typename nested_step::state\r
-        , typename deref<First>::type\r
-        >::type state;\r
-\r
-    typedef typename nested_step::iterator iterator;\r
-};\r
-\r
-template<\r
-      long N\r
-    , typename First\r
-    , typename Last\r
-    , typename State\r
-    , typename BackwardOp\r
-    , typename ForwardOp\r
-    >\r
-struct reverse_fold_impl\r
-    : reverse_fold_chunk<N>\r
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >\r
-{\r
-};\r
-\r
-}}}\r
+
+// 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 the main "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 >
+{
+};
+
+}}}