From 3217a572862db5c6e2753c2ec5cfe3b74df0376a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Mon, 16 Dec 2024 21:31:13 +0000 Subject: [PATCH] P3355R1 Fix submdspan for C++26 --- source/containers.tex | 13 +++++++++++++ source/support.tex | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/source/containers.tex b/source/containers.tex index 2cd7f53bcc..354d1c0983 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -24319,6 +24319,19 @@ let \tcode{offset} be a value of type \tcode{size_t} equal to \tcode{(*this)(\exposid{first_}(slices...)...)}. +\pnum +Given a layout mapping type \tcode{M}, a type \tcode{S} is a +\defnadjx{unit-stride}{slice for \tcode{M}}{slice} if +\begin{itemize} +\item \tcode{S} is a specialization of \tcode{strided_slice} +where \tcode{S::stride_type} models \exposconcept{integral-constant-like} +and \tcode{S::stride_type::value} equals \tcode{1}, + +\item \tcode{S} models \tcode{\exposconcept{index-pair-like}}, or + +\item \tcode{is_convertible_v} is \tcode{true}. +\end{itemize} + \rSec5[mdspan.sub.map.left]{\tcode{layout_left} specialization of \tcode{submdspan_mapping}} \indexlibrarymemberexpos{layout_left::mapping}{submdspan-mapping-impl}% diff --git a/source/support.tex b/source/support.tex index a25911d9d2..ca0f9923da 100644 --- a/source/support.tex +++ b/source/support.tex @@ -797,7 +797,7 @@ #define @\defnlibxname{cpp_lib_string_resize_and_overwrite}@ 202110L // also in \libheader{string} #define @\defnlibxname{cpp_lib_string_udls}@ 201304L // also in \libheader{string} #define @\defnlibxname{cpp_lib_string_view}@ 202403L // also in \libheader{string}, \libheader{string_view} -#define @\defnlibxname{cpp_lib_submdspan}@ 202403L // freestanding, also in \libheader{mdspan} +#define @\defnlibxname{cpp_lib_submdspan}@ 202411L // freestanding, also in \libheader{mdspan} #define @\defnlibxname{cpp_lib_syncbuf}@ 201803L // also in \libheader{syncstream} #define @\defnlibxname{cpp_lib_text_encoding}@ 202306L // also in \libheader{text_encoding} #define @\defnlibxname{cpp_lib_three_way_comparison}@ 201907L // freestanding, also in \libheader{compare}