cpp/ranges/common view

@1@ Adapts a given with different types for iterator/sentinel pair into a  that is also a. A always has the same iterator/sentinel type.

@2@ . Let be a subexpression. Then the expression is expression-equivalent to:
 * , if it is a well-formed expression and models ;
 * otherwise.

Data members
Typical implementations of hold only one non-static data member &mdash; the underlying view of type.

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