98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| // 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_/advance_backward.hpp" header
 | |
| // -- DO NOT modify by hand!
 | |
| 
 | |
| namespace boost { 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;
 | |
|     };
 | |
| };
 | |
| 
 | |
| template<>
 | |
| struct advance_backward<1>
 | |
| {
 | |
|     template< typename Iterator > struct apply
 | |
|     {
 | |
|         typedef Iterator iter0;
 | |
|         typedef typename prior<iter0>::type iter1;
 | |
|         typedef iter1 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;
 | |
|     };
 | |
| };
 | |
| 
 | |
| 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;
 | |
|     };
 | |
| };
 | |
| 
 | |
| 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;
 | |
|     };
 | |
| };
 | |
| 
 | |
| 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;
 | |
|     };
 | |
| };
 | |
| 
 | |
| }}}
 | |
| 
 | 
