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