Thanks, iterator_range works fine. What's not very nice to me is the T typename is lost for empty sequence and after using a metafunction,Hi, I have a problem with using pop_front on an integral sequence. pop_front< vector_c<T, c1, c2, ... cn> >::type results in vector<c2, ... cn> Is it intended behavior? Is there some way to get vector_c<T, c2, ... cn> >I think vector_c is implemented as vector< mpl::int_<c2>, ... mpl::int_<cn> >. May be you should try using iterator_range which will result in a view to your initial vector and probably have a better compiler performance.