Range-v3 (https://github.com/ericniebler/range-v3) exists solving the same problem, and there's a standardization proposal (http://en.cppreference.com/w/cpp/experimental/ranges).
Perhaps I am missing something though, could you expand a little on the specific part of Range-v3 that you are thinking of?
Check the first link rather than the cppreference documentation.
By the way, type-checking isn't Pythonesque. Haskellesque perhaps.