Iterador de salto

Tengo una secuencia de valores que me gustaría pasar a una función que toma un(iterator begin, iterator end) par. Sin embargo, solo quiero que se procese cada segundo elemento de la secuencia original.

¿Hay una buena manera de usar Standard-Lib / Boost para crear una fachada de iterador que me permita pasar en la secuencia original? Pensé que algo simple como esto ya estaría en los iteradores de impulso o en las bibliotecas de rango, pero no encontré nada.

¿O me estoy perdiendo otra forma completamente obvia de hacer esto? Por supuesto, sé que siempre tengo la opción de copiar los valores a otra secuencia, pero eso no es lo que quiero hacer.

Editar Se acerca defilter_iterator, pero eso filtra los valores: no cambia la forma en que avanza la iteración.

Respuestas a la pregunta(3)

Su respuesta a la pregunta