Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:41:30

0001 
0002 // Copyright Aleksey Gurtovoy 2000-2004
0003 //
0004 // Distributed under the Boost Software License, Version 1.0. 
0005 // (See accompanying file LICENSE_1_0.txt or copy at 
0006 // http://www.boost.org/LICENSE_1_0.txt)
0007 //
0008 
0009 // Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
0010 // -- DO NOT modify by hand!
0011 
0012 namespace boost { namespace mpl { namespace aux {
0013 
0014 template< long N > struct advance_forward;
0015 template<>
0016 struct advance_forward<0>
0017 {
0018     template< typename Iterator > struct apply
0019     {
0020         typedef Iterator iter0;
0021         typedef iter0 type;
0022     };
0023 };
0024 
0025 template<>
0026 struct advance_forward<1>
0027 {
0028     template< typename Iterator > struct apply
0029     {
0030         typedef Iterator iter0;
0031         typedef typename next<iter0>::type iter1;
0032         typedef iter1 type;
0033     };
0034 };
0035 
0036 template<>
0037 struct advance_forward<2>
0038 {
0039     template< typename Iterator > struct apply
0040     {
0041         typedef Iterator iter0;
0042         typedef typename next<iter0>::type iter1;
0043         typedef typename next<iter1>::type iter2;
0044         typedef iter2 type;
0045     };
0046 };
0047 
0048 template<>
0049 struct advance_forward<3>
0050 {
0051     template< typename Iterator > struct apply
0052     {
0053         typedef Iterator iter0;
0054         typedef typename next<iter0>::type iter1;
0055         typedef typename next<iter1>::type iter2;
0056         typedef typename next<iter2>::type iter3;
0057         typedef iter3 type;
0058     };
0059 };
0060 
0061 template<>
0062 struct advance_forward<4>
0063 {
0064     template< typename Iterator > struct apply
0065     {
0066         typedef Iterator iter0;
0067         typedef typename next<iter0>::type iter1;
0068         typedef typename next<iter1>::type iter2;
0069         typedef typename next<iter2>::type iter3;
0070         typedef typename next<iter3>::type iter4;
0071         typedef iter4 type;
0072     };
0073 };
0074 
0075 template< long N >
0076 struct advance_forward
0077 {
0078     template< typename Iterator > struct apply
0079     {
0080         typedef typename apply_wrap1<
0081               advance_forward<4>
0082             , Iterator
0083             >::type chunk_result_;
0084 
0085         typedef typename apply_wrap1<
0086               advance_forward<(
0087                 (N - 4) < 0
0088                     ? 0
0089                     : N - 4
0090                     )>
0091             , chunk_result_
0092             >::type type;
0093     };
0094 };
0095 
0096 }}}
0097