In the begin and end function templates that follow, unspecified1
is a type that meets the requirements of a mutable random access
iterator ([random.access.iterators])
and of a contiguous iterator ([iterator.requirements.general])
whose value_type is the template
parameter T and whose reference type is T&.
unspecified2 is a
type that meets the requirements of a constant random access
iterator ([random.access.iterators])
and of a contiguous iterator ([iterator.requirements.general])
whose value_type is the template
parameter T and whose reference type is const T&.
The iterators returned by begin and end for an array
are guaranteed to be valid until the member function
resize(size_t, T) ([valarray.members]) is called for that
array or until the lifetime of that array ends, whichever happens
first.