text: 
  // 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 the main "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;
      };
  };
  
  }}}
  
  