epoc32/include/stdapis/boost/mpl/aux_/advance_forward.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 epoc32/include/stdapis/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp@2fe1408b6811
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
     1 
     2 // Copyright Aleksey Gurtovoy 2000-2004
     3 //
     4 // Distributed under the Boost Software License, Version 1.0. 
     5 // (See accompanying file LICENSE_1_0.txt or copy at 
     6 // http://www.boost.org/LICENSE_1_0.txt)
     7 //
     8 
     9 // Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
    10 // -- DO NOT modify by hand!
    11 
    12 namespace boost { namespace mpl { namespace aux {
    13 
    14 template< long N > struct advance_forward;
    15 template<>
    16 struct advance_forward<0>
    17 {
    18     template< typename Iterator > struct apply
    19     {
    20         typedef Iterator iter0;
    21         typedef iter0 type;
    22     };
    23 };
    24 
    25 template<>
    26 struct advance_forward<1>
    27 {
    28     template< typename Iterator > struct apply
    29     {
    30         typedef Iterator iter0;
    31         typedef typename next<iter0>::type iter1;
    32         typedef iter1 type;
    33     };
    34 };
    35 
    36 template<>
    37 struct advance_forward<2>
    38 {
    39     template< typename Iterator > struct apply
    40     {
    41         typedef Iterator iter0;
    42         typedef typename next<iter0>::type iter1;
    43         typedef typename next<iter1>::type iter2;
    44         typedef iter2 type;
    45     };
    46 };
    47 
    48 template<>
    49 struct advance_forward<3>
    50 {
    51     template< typename Iterator > struct apply
    52     {
    53         typedef Iterator iter0;
    54         typedef typename next<iter0>::type iter1;
    55         typedef typename next<iter1>::type iter2;
    56         typedef typename next<iter2>::type iter3;
    57         typedef iter3 type;
    58     };
    59 };
    60 
    61 template<>
    62 struct advance_forward<4>
    63 {
    64     template< typename Iterator > struct apply
    65     {
    66         typedef Iterator iter0;
    67         typedef typename next<iter0>::type iter1;
    68         typedef typename next<iter1>::type iter2;
    69         typedef typename next<iter2>::type iter3;
    70         typedef typename next<iter3>::type iter4;
    71         typedef iter4 type;
    72     };
    73 };
    74 
    75 template< long N >
    76 struct advance_forward
    77 {
    78     template< typename Iterator > struct apply
    79     {
    80         typedef typename apply_wrap1<
    81               advance_forward<4>
    82             , Iterator
    83             >::type chunk_result_;
    84 
    85         typedef typename apply_wrap1<
    86               advance_forward<(
    87                 (N - 4) < 0
    88                     ? 0
    89                     : N - 4
    90                     )>
    91             , chunk_result_
    92             >::type type;
    93     };
    94 };
    95 
    96 }}}
    97