The view concept specifies the requirements of a range type
that has constant time move construction, move assignment, and destruction;
that is, the cost of these operations is
independent of the number of elements in the view.
For a type T,
is-derived-from-view-interface<T> is true
if and only if
T has exactly one public base class view_interface<U>
for some type U and
T has no base classes of type view_interface<V>
for any other type V.