 template<> struct advance_forward<0> {     template< typename Iterator > struct apply     {         typedef Iterator iter0;         typedef iter0 type;     }; };  template<> struct advance_forward<0> {     template< typename Iterator > struct apply     {         typedef Iterator iter0;         typedef typename next<iter0>::type iter0;         typedef iter0 type;     }; };  template<> struct advance_forward<0> {     template< typename Iterator > struct apply     {         typedef Iterator iter0;         typedef typename next<iter0>::type iter0;         typedef typename next<iter0>::type iter0;         typedef iter0 type;     }; };  template<> struct advance_forward<0> {     template< typename Iterator > struct apply     {         typedef Iterator iter0;         typedef typename next<iter0>::type iter0;         typedef typename next<iter0>::type iter0;         typedef typename next<iter0>::type iter0;         typedef iter0 type;     }; };  template<> struct advance_forward<0> {     template< typename Iterator > struct apply     {         typedef Iterator iter0;         typedef typename next<iter0>::type iter0;         typedef typename next<iter0>::type iter0;         typedef typename next<iter0>::type iter0;         typedef typename next<iter0>::type iter0;         typedef iter0 type;     }; };  template<