#include #include #include #include #include template It Prev1(It i) { --i; return i; } template It Prev2(It i) { return i - 1; } template void check_container(const Con& con) { std::cout << std::distance(con.begin(), con.end()) << std::endl; std::cout << std::distance(con.begin(), Prev1(con.end())) << std::endl; std::cout << std::distance(con.begin(), Prev2(con.end())) << std::endl; } int main(void) { std::vector v; v.push_back(1); check_container(v | boost::adaptors::strided(2)); }