advance_backward.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 133 行

HPP
133
字号
// 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;    };    /// 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;    };};}}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?