[span.syn] # 23 Containers library [[containers]](./#containers) ## 23.7 Views [[views]](views#span.syn) ### 23.7.2 Contiguous access [[views.contiguous]](views.contiguous#span.syn) #### 23.7.2.1 Header synopsis [span.syn] [🔗](#header:%3cspan%3e) #include // see [[initializer.list.syn]](initializer.list.syn "17.11.2 Header synopsis")// mostly freestandingnamespace std {// constantsinline constexpr size_t [dynamic_extent](#lib:dynamic_extent "23.7.2.1 Header synopsis [span.syn]") = numeric_limits::max(); templateconcept [*integral-constant-like*](#concept:integral-constant-like "23.7.2.1 Header synopsis [span.syn]") = // *exposition only* is_integral_v> &&!is_same_v> &&[convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_­to [concept.convertible]") &&[equality_comparable_with](concept.equalitycomparable#concept:equality_comparable_with "18.5.4 Concept equality_­comparable [concept.equalitycomparable]") && bool_constant::value && bool_constant(T()) == T::value>::value; templateconstexpr size_t [*maybe-static-ext*](#concept:maybe-static-ext "23.7.2.1 Header synopsis [span.syn]") = dynamic_extent; // *exposition only*template<[*integral-constant-like*](#concept:integral-constant-like "23.7.2.1 Header synopsis [span.syn]") T>constexpr size_t [*maybe-static-ext*](#concept:maybe-static-ext "23.7.2.1 Header synopsis [span.syn]") = {T::value}; // [[views.span]](views.span "23.7.2.2 Class template span"), class template spantemplateclass span; // partially freestandingtemplateconstexpr bool ranges::enable_view> = true; templateconstexpr bool ranges::enable_borrowed_range> = true; // [[span.objectrep]](span.objectrep "23.7.2.3 Views of object representation"), views of object representationtemplate span as_bytes(span s) noexcept; template span as_writable_bytes(span s) noexcept;}