| |
| // 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 "ndnboost/mpl/aux_/advance_backward.hpp" header |
| // -- DO NOT modify by hand! |
| |
| namespace ndnboost { namespace mpl { namespace aux { |
| |
| template< long N > struct advance_backward; |
| template<> |
| struct advance_backward<0> |
| { |
| template< typename Iterator > struct apply |
| { |
| typedef Iterator iter0; |
| typedef iter0 type; |
| }; |
| |
| /// ETI workaround |
| template<> struct apply<int> |
| { |
| typedef int type; |
| }; |
| |
| }; |
| |
| template<> |
| struct advance_backward<1> |
| { |
| template< typename Iterator > struct apply |
| { |
| typedef Iterator iter0; |
| typedef typename prior<iter0>::type iter1; |
| typedef iter1 type; |
| }; |
| |
| /// ETI workaround |
| template<> struct apply<int> |
| { |
| typedef int type; |
| }; |
| |
| }; |
| |
| template<> |
| struct advance_backward<2> |
| { |
| template< typename Iterator > struct apply |
| { |
| typedef Iterator iter0; |
| typedef typename prior<iter0>::type iter1; |
| typedef typename prior<iter1>::type iter2; |
| typedef iter2 type; |
| }; |
| |
| /// ETI workaround |
| template<> struct apply<int> |
| { |
| typedef int type; |
| }; |
| |
| }; |
| |
| template<> |
| struct advance_backward<3> |
| { |
| template< typename Iterator > struct apply |
| { |
| typedef Iterator iter0; |
| typedef typename prior<iter0>::type iter1; |
| typedef typename prior<iter1>::type iter2; |
| typedef typename prior<iter2>::type iter3; |
| typedef iter3 type; |
| }; |
| |
| /// ETI workaround |
| template<> struct apply<int> |
| { |
| typedef int type; |
| }; |
| |
| }; |
| |
| template<> |
| struct advance_backward<4> |
| { |
| template< typename Iterator > struct apply |
| { |
| typedef Iterator iter0; |
| typedef typename prior<iter0>::type iter1; |
| typedef typename prior<iter1>::type iter2; |
| typedef typename prior<iter2>::type iter3; |
| typedef typename prior<iter3>::type iter4; |
| typedef iter4 type; |
| }; |
| |
| /// ETI workaround |
| template<> struct apply<int> |
| { |
| typedef int type; |
| }; |
| |
| }; |
| |
| template< long N > |
| struct advance_backward |
| { |
| template< typename Iterator > struct apply |
| { |
| typedef typename apply_wrap1< |
| advance_backward<4> |
| , Iterator |
| >::type chunk_result_; |
| |
| typedef typename apply_wrap1< |
| advance_backward<( |
| (N - 4) < 0 |
| ? 0 |
| : N - 4 |
| )> |
| , chunk_result_ |
| >::type type; |
| }; |
| }; |
| |
| }}} |
| |