zip_iter now derefs to a tuple of the iterators elements, not a tuple of iterators
zip_longest_iter returns tuple of boost::optional