cpp/ranges/view

@1@ The concept specifies the requirements of a  type that has suitable semantic properties for use in constructing range adaptor pipelines.

@2@ The variable template is used to indicate whether a  is a. is if and only if  has exactly one public base class  for some type, and  has no base classes of type  for any other type. Users may specialize to  for cv-unqualified program-defined types which model, and  for types which do not. Such specializations must be usable in constant expressions and have type.

@3@ Deriving from enables  types to model.

Semantic requirements
@1@ models  only if:
 * move construction of has constant time complexity, and
 * if copies and/or moves are made from a  object holding  elements, then these  objects have  destruction (which implies that a moved-from  object has  destruction), and
 * either is, or copy construction of  has constant time complexity, and
 * either is, or copy assignment of  has no more time complexity than destruction followed by copy construction.