cpp/ranges/zip view

@1@ is a range adaptor that takes one or more s, and produces a  whose th element is a tuple-like value consisting of the th elements of all views. The size of produced view is the minimum of sizes of all adapted views.

@2@ is a customization point object. When calling with no argument, is expression-equivalent to. Otherwise, is expression-equivalent to.

always models, and models , , , or if all adapted  types model the corresponding concept.

models if
 * is equal to 1, and the only adapted view type models, or
 * at least one adapted view type does not model, and every adapted view type models , or
 * every adapted view type models both and.

Data members
Typical implementations of hold only one non-static data member: a  holding all adapted view objects.

For the purpose of exposition, the view objects in that std are shown as here.

Helper templates
This specialization of makes  satisfy  when each underlying view satisfies it.