Skip to content

Commit 53e1918

Browse files
committed
P1872R0 span should have size_type, not index_type
Also fixes NB FR 240, US 245, and PL 248 (C++20 CD).
1 parent 81f1d68 commit 53e1918

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

source/containers.tex

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10566,7 +10566,7 @@
1056610566
// constants and types
1056710567
using element_type = ElementType;
1056810568
using value_type = remove_cv_t<ElementType>;
10569-
using index_type = size_t;
10569+
using size_type = size_t;
1057010570
using difference_type = ptrdiff_t;
1057110571
using pointer = element_type*;
1057210572
using const_pointer = const element_type*;
@@ -10576,11 +10576,11 @@
1057610576
using const_iterator = @\impdefx{type of \tcode{span::const_iterator}}@;
1057710577
using reverse_iterator = std::reverse_iterator<iterator>;
1057810578
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
10579-
static constexpr index_type extent = Extent;
10579+
static constexpr size_type extent = Extent;
1058010580

1058110581
// \ref{span.cons}, constructors, copy, and assignment
1058210582
constexpr span() noexcept;
10583-
constexpr span(pointer ptr, index_type count);
10583+
constexpr span(pointer ptr, size_type count);
1058410584
constexpr span(pointer first, pointer last);
1058510585
template<size_t N>
1058610586
constexpr span(element_type (&arr)[N]) noexcept;
@@ -10608,18 +10608,18 @@
1060810608
template<size_t Offset, size_t Count = dynamic_extent>
1060910609
constexpr span<element_type, @\seebelow@> subspan() const;
1061010610

10611-
constexpr span<element_type, dynamic_extent> first(index_type count) const;
10612-
constexpr span<element_type, dynamic_extent> last(index_type count) const;
10611+
constexpr span<element_type, dynamic_extent> first(size_type count) const;
10612+
constexpr span<element_type, dynamic_extent> last(size_type count) const;
1061310613
constexpr span<element_type, dynamic_extent> subspan(
10614-
index_type offset, index_type count = dynamic_extent) const;
10614+
size_type offset, size_type count = dynamic_extent) const;
1061510615

1061610616
// \ref{span.obs}, observers
10617-
constexpr index_type size() const noexcept;
10618-
constexpr index_type size_bytes() const noexcept;
10617+
constexpr size_type size() const noexcept;
10618+
constexpr size_type size_bytes() const noexcept;
1061910619
[[nodiscard]] constexpr bool empty() const noexcept;
1062010620

1062110621
// \ref{span.elem}, element access
10622-
constexpr reference operator[](index_type idx) const;
10622+
constexpr reference operator[](size_type idx) const;
1062310623
constexpr reference front() const;
1062410624
constexpr reference back() const;
1062510625
constexpr pointer data() const noexcept;
@@ -10639,7 +10639,7 @@
1063910639

1064010640
private:
1064110641
pointer data_; // \expos
10642-
index_type size_; // \expos
10642+
size_type size_; // \expos
1064310643
};
1064410644

1064510645
template<class T, size_t N>
@@ -10678,7 +10678,7 @@
1067810678

1067910679
\indexlibraryctor{span}%
1068010680
\begin{itemdecl}
10681-
constexpr span(pointer ptr, index_type count);
10681+
constexpr span(pointer ptr, size_type count);
1068210682
\end{itemdecl}
1068310683

1068410684
\begin{itemdescr}
@@ -10897,7 +10897,7 @@
1089710897

1089810898
\indexlibrarymember{span}{first}%
1089910899
\begin{itemdecl}
10900-
constexpr span<element_type, dynamic_extent> first(index_type count) const;
10900+
constexpr span<element_type, dynamic_extent> first(size_type count) const;
1090110901
\end{itemdecl}
1090210902

1090310903
\begin{itemdescr}
@@ -10912,7 +10912,7 @@
1091210912

1091310913
\indexlibrarymember{span}{last}%
1091410914
\begin{itemdecl}
10915-
constexpr span<element_type, dynamic_extent> last(index_type count) const;
10915+
constexpr span<element_type, dynamic_extent> last(size_type count) const;
1091610916
\end{itemdecl}
1091710917

1091810918
\begin{itemdescr}
@@ -10928,7 +10928,7 @@
1092810928
\indexlibrarymember{span}{subspan}%
1092910929
\begin{itemdecl}
1093010930
constexpr span<element_type, dynamic_extent> subspan(
10931-
index_type offset, index_type count = dynamic_extent) const;
10931+
size_type offset, size_type count = dynamic_extent) const;
1093210932
\end{itemdecl}
1093310933

1093410934
\begin{itemdescr}
@@ -10951,7 +10951,7 @@
1095110951

1095210952
\indexlibrarymember{span}{size}%
1095310953
\begin{itemdecl}
10954-
constexpr index_type size() const noexcept;
10954+
constexpr size_type size() const noexcept;
1095510955
\end{itemdecl}
1095610956

1095710957
\begin{itemdescr}
@@ -10962,7 +10962,7 @@
1096210962

1096310963
\indexlibrarymember{span}{size_bytes}%
1096410964
\begin{itemdecl}
10965-
constexpr index_type size_bytes() const noexcept;
10965+
constexpr size_type size_bytes() const noexcept;
1096610966
\end{itemdecl}
1096710967

1096810968
\begin{itemdescr}
@@ -10986,7 +10986,7 @@
1098610986

1098710987
\indexlibrary{\idxcode{operator[]}!\idxcode{span}}%
1098810988
\begin{itemdecl}
10989-
constexpr reference operator[](index_type idx) const;
10989+
constexpr reference operator[](size_type idx) const;
1099010990
\end{itemdecl}
1099110991

1099210992
\begin{itemdescr}

0 commit comments

Comments
 (0)