cpp/ranges/borrowed range

@1@ The concept defines the requirements of a range such that a function can take it by value and return iterators obtained from it without danger of dangling. @2@ The variable template is used to indicate whether a  is a. The primary template is defined as.

Semantic requirements
Let be  if  is an rvalue reference type, and  otherwise. Given a variable of type,  models  only if the validity of iterators obtained from  is not tied to the lifetime of that variable.

Specializations
Specializations of for all specializations of the following standard templates are defined as :

Specialization of for the following standard range adaptors are defined as  if and only if  is, where  is the underlying view type:

Users may specialize to  for cv-unqualified program-defined types which model, and  for types which do not. Such specializations shall be usable in constant expressions and have type.