cpp/ranges/zip transform view

@1@ is a range adaptor that takes an invocable object and one or more s, and produces a  whose $th$ element is the result of applying the invocable object to the $th$ elements of all views. A type models the exposition-only concept  if and only if  is a valid type.

@2@ is a customization point object. When calling with one argument, let be , if: then is expression-equivalent to. Otherwise, the call to is ill-formed. When calling with more than one arguments and,  is expression-equivalent to.
 * models ,
 * models, and
 * is an object type,

models the concepts, , , , , and when the underlying  models respective concepts.

Data members
Typical implementations of hold two non-static data members:
 * an underlying view object of type (shown here as  for exposition purposes only), and
 * a wrapped invocable object of type (shown here as  for exposition purposes only).