Skip to content

Commit bedf521

Browse files
committed
[utility.requirements] Dismantle requirements tables
1 parent ffd3141 commit bedf521

File tree

12 files changed

+359
-210
lines changed

12 files changed

+359
-210
lines changed

source/algorithms.tex

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -3407,10 +3407,10 @@
34073407
\pnum
34083408
\expects
34093409
\tcode{Function} meets
3410-
the \oldconcept{MoveConstructible} requirements (\tref{cpp17.moveconstructible}).
3410+
the \oldconcept{MoveConstructible} requirements\iref{utility.req.cpp17.moveconstructible}.
34113411
\begin{note}
34123412
\tcode{Function} need not meet the requirements of
3413-
\oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}).
3413+
\oldconcept{CopyConstructible}\iref{utility.req.cpp17.copyconstructible}.
34143414
\end{note}
34153415

34163416
\pnum
@@ -4961,7 +4961,7 @@
49614961
For the overload with an \tcode{ExecutionPolicy},
49624962
there might be a performance cost
49634963
if \tcode{iterator_traits<For\-ward\-It\-er\-ator1>::value_type}
4964-
is not \oldconcept{\-Move\-Constructible} (\tref{cpp17.moveconstructible}).
4964+
is not \oldconcept{\-Move\-Constructible}\iref{utility.req.cpp17.moveconstructible}.
49654965
\end{note}
49664966

49674967
\pnum
@@ -5756,7 +5756,7 @@
57565756
\expects
57575757
For the algorithms in namespace \tcode{std},
57585758
the type of \tcode{*first}
5759-
meets the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}).
5759+
meets the \oldconcept{MoveAssignable} requirements\iref{utility.req.cpp17.moveassignable}.
57605760

57615761
\pnum
57625762
\effects
@@ -5864,7 +5864,7 @@
58645864
For the overloads with an \tcode{ExecutionPolicy},
58655865
there might be a performance cost
58665866
if \tcode{iterator_traits<ForwardIterator1>::value_type} does not meet
5867-
the \oldconcept{\-Move\-Constructible} (\tref{cpp17.moveconstructible}) requirements.
5867+
the \oldconcept{\-Move\-Constructible}\iref{utility.req.cpp17.moveconstructible} requirements.
58685868
\end{note}
58695869

58705870
\pnum
@@ -5937,7 +5937,7 @@
59375937
For the overloads in namepace \tcode{std},
59385938
\tcode{pred} is an equivalence relation and
59395939
the type of \tcode{*first} meets
5940-
the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}).
5940+
the \oldconcept{MoveAssignable} requirements\iref{utility.req.cpp17.moveassignable}.
59415941

59425942
\pnum
59435943
\effects
@@ -6043,9 +6043,9 @@
60436043
the \oldconcept{ForwardIterator} requirements and
60446044
its value type is the same as \tcode{T},
60456045
then \tcode{T} meets
6046-
the \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements.
6046+
the \oldconcept{CopyAssignable}\iref{utility.req.cpp17.copyassignable} requirements.
60476047
Otherwise, \tcode{T} meets both
6048-
the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) and
6048+
the \oldconcept{CopyConstructible}\iref{utility.req.cpp17.copyconstructible} and
60496049
\oldconcept{CopyAssignable} requirements.
60506050
\begin{note}
60516051
For the overloads with an \tcode{ExecutionPolicy},
@@ -6193,8 +6193,8 @@
61936193
\tcode{ForwardIterator} meets
61946194
the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements}, and
61956195
the type of \tcode{*first} meets
6196-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
6197-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
6196+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
6197+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
61986198

61996199
\pnum
62006200
\effects
@@ -6691,8 +6691,8 @@
66916691
\tcode{RandomAccessIterator} meets
66926692
the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
66936693
the type of \tcode{*first} meets
6694-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
6695-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
6694+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
6695+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
66966696

66976697
\pnum
66986698
\effects
@@ -6749,8 +6749,8 @@
67496749
\tcode{RandomAccessIterator} meets
67506750
the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
67516751
the type of \tcode{*first} meets
6752-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
6753-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
6752+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
6753+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
67546754

67556755
\pnum
67566756
\effects
@@ -6819,8 +6819,8 @@
68196819
\tcode{RandomAccessIterator} meets
68206820
the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
68216821
the type of \tcode{*first} meets
6822-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
6823-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
6822+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
6823+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
68246824

68256825
\pnum
68266826
\effects
@@ -6927,8 +6927,8 @@
69276927
\tcode{RandomAccessIterator} meets
69286928
the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements},
69296929
the type of \tcode{*result_first} meets
6930-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
6931-
\oldconcept{\-Move\-Assignable} (\tref{cpp17.moveassignable}) requirements.
6930+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
6931+
\oldconcept{\-Move\-Assignable}\iref{utility.req.cpp17.moveassignable} requirements.
69326932

69336933
\pnum
69346934
For iterators \tcode{a1} and \tcode{b1} in \range{first}{last}, and
@@ -7132,8 +7132,8 @@
71327132
\tcode{RandomAccessIterator} meets
71337133
the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements}, and
71347134
the type of \tcode{*first} meets
7135-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
7136-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
7135+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
7136+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
71377137

71387138
\pnum
71397139
\effects
@@ -7540,8 +7540,8 @@
75407540
\tcode{BidirectionalIterator} meets
75417541
the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
75427542
the type of \tcode{*first} meets
7543-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
7544-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
7543+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
7544+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
75457545

75467546
\pnum
75477547
\effects
@@ -7831,8 +7831,8 @@
78317831
\tcode{BidirectionalIterator} meets
78327832
the \oldconcept{Value\-Swappable} requirements\iref{swappable.requirements} and
78337833
the type of \tcode{*first} meets
7834-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
7835-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
7834+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
7835+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
78367836

78377837
\pnum
78387838
\effects
@@ -8399,8 +8399,8 @@
83998399
is a valid heap with respect to \tcode{comp} and \tcode{proj}.
84008400
For the overloads in namespace \tcode{std},
84018401
the type of \tcode{*first} meets
8402-
the \oldconcept{MoveConstructible} requirements (\tref{cpp17.moveconstructible}) and
8403-
the \oldconcept{MoveAssignable} requirements (\tref{cpp17.moveassignable}).
8402+
the \oldconcept{MoveConstructible} requirements\iref{utility.req.cpp17.moveconstructible} and
8403+
the \oldconcept{MoveAssignable} requirements\iref{utility.req.cpp17.moveassignable}.
84048404

84058405
\pnum
84068406
\effects
@@ -8452,8 +8452,8 @@
84528452
\tcode{RandomAccessIterator} meets
84538453
the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
84548454
the type of \tcode{*first} meets
8455-
the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) and
8456-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
8455+
the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} and
8456+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
84578457

84588458
\pnum
84598459
\effects
@@ -8506,8 +8506,8 @@
85068506
\expects
85078507
For the overloads in namespace \tcode{std},
85088508
the type of \tcode{*first} meets
8509-
the \oldconcept{Move\-Constructible} (\tref{cpp17.moveconstructible}) and
8510-
\oldconcept{MoveAssignable} (\tref{cpp17.moveassignable}) requirements.
8509+
the \oldconcept{Move\-Constructible}\iref{utility.req.cpp17.moveconstructible} and
8510+
\oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable} requirements.
85118511

85128512
\pnum
85138513
\effects
@@ -8559,8 +8559,8 @@
85598559
\tcode{RandomAccessIterator} meets
85608560
the \oldconcept{ValueSwappable} requirements\iref{swappable.requirements} and
85618561
the type of \tcode{*first} meets
8562-
the \oldconcept{MoveConst\-ruct\-ible} (\tref{cpp17.moveconstructible}) and
8563-
\oldconcept{Move\-Assign\-able} (\tref{cpp17.moveassignable}) requirements.
8562+
the \oldconcept{MoveConst\-ruct\-ible}\iref{utility.req.cpp17.moveconstructible} and
8563+
\oldconcept{Move\-Assign\-able}\iref{utility.req.cpp17.moveassignable} requirements.
85648564

85658565
\pnum
85668566
\effects
@@ -8719,7 +8719,7 @@
87198719
\pnum
87208720
\expects
87218721
For the first form, \tcode{T} meets the
8722-
\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}).
8722+
\oldconcept{LessThanComparable} requirements\iref{utility.req.cpp17.lessthancomparable}.
87238723

87248724
\pnum
87258725
\returns
@@ -8761,7 +8761,7 @@
87618761
For the overloads in namespace \tcode{std},
87628762
\tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements.
87638763
For the first form, \tcode{T} meets the \oldconcept{LessThanComparable}
8764-
requirements (\tref{cpp17.lessthancomparable}).
8764+
requirements\iref{utility.req.cpp17.lessthancomparable}.
87658765

87668766
\pnum
87678767
\returns
@@ -8797,7 +8797,7 @@
87978797
\pnum
87988798
\expects
87998799
For the first form, \tcode{T} meets the
8800-
\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}).
8800+
\oldconcept{LessThanComparable} requirements\iref{utility.req.cpp17.lessthancomparable}.
88018801

88028802
\pnum
88038803
\returns
@@ -8839,7 +8839,7 @@
88398839
For the overloads in namespace \tcode{std},
88408840
\tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements.
88418841
For the first form, \tcode{T} meets the \oldconcept{LessThanComparable}
8842-
requirements (\tref{cpp17.lessthancomparable}).
8842+
requirements\iref{utility.req.cpp17.lessthancomparable}.
88438843

88448844
\pnum
88458845
\returns
@@ -8877,7 +8877,7 @@
88778877
\pnum
88788878
\expects
88798879
For the first form, \tcode{T} meets the
8880-
\oldconcept{LessThanComparable} requirements (\tref{cpp17.lessthancomparable}).
8880+
\oldconcept{LessThanComparable} requirements\iref{utility.req.cpp17.lessthancomparable}.
88818881

88828882
\pnum
88838883
\returns
@@ -8920,7 +8920,7 @@
89208920
For the overloads in namespace \tcode{std},
89218921
\tcode{T} meets the \oldconcept{\-Copy\-Constructible} requirements.
89228922
For the first form, type \tcode{T} meets the \oldconcept{LessThanComparable}
8923-
requirements (\tref{cpp17.lessthancomparable}).
8923+
requirements\iref{utility.req.cpp17.lessthancomparable}.
89248924

89258925
\pnum
89268926
\returns
@@ -9112,7 +9112,7 @@
91129112
\tcode{bool(invoke(comp, invoke(proj, hi), invoke(proj, lo)))} is \tcode{false}.
91139113
For the first form, type \tcode{T}
91149114
meets the \oldconcept{LessThan\-Comparable}
9115-
requirements (\tref{cpp17.lessthancomparable}).
9115+
requirements\iref{utility.req.cpp17.lessthancomparable}.
91169116

91179117
\pnum
91189118
\returns
@@ -9665,8 +9665,8 @@
96659665
\pnum
96669666
\expects
96679667
\tcode{T} meets
9668-
the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible})
9669-
and \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements.
9668+
the \oldconcept{CopyConstructible}\iref{utility.req.cpp17.copyconstructible}
9669+
and \oldconcept{CopyAssignable}\iref{utility.req.cpp17.copyassignable} requirements.
96709670
In the range \crange{first}{last},
96719671
\tcode{binary_op} neither modifies elements
96729672
nor invalidates iterators or subranges.
@@ -9788,7 +9788,7 @@
97889788
\expects
97899789
\begin{itemize}
97909790
\item
9791-
\tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements.
9791+
\tcode{T} meets the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} requirements.
97929792
\item
97939793
\tcode{binary_op} neither invalidates iterators or subranges,
97949794
nor modifies elements in the range \crange{first}{last}.
@@ -9832,8 +9832,8 @@
98329832
\pnum
98339833
\expects
98349834
\tcode{T} meets
9835-
the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible})
9836-
and \oldconcept{CopyAssignable} (\tref{cpp17.copyassignable}) requirements.
9835+
the \oldconcept{CopyConstructible}\iref{utility.req.cpp17.copyconstructible}
9836+
and \oldconcept{CopyAssignable}\iref{utility.req.cpp17.copyassignable} requirements.
98379837
In the ranges \crange{first1}{last1} and
98389838
\crange{first2}{first2 + (last1 - first1)}
98399839
\tcode{binary_op1} and \tcode{binary_op2}
@@ -9928,7 +9928,7 @@
99289928
\expects
99299929
\begin{itemize}
99309930
\item
9931-
\tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements.
9931+
\tcode{T} meets the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} requirements.
99329932
\item
99339933
Neither \tcode{binary_op1} nor \tcode{binary_op2}
99349934
invalidates subranges, nor modifies elements in the ranges
@@ -9978,7 +9978,7 @@
99789978
\expects
99799979
\begin{itemize}
99809980
\item
9981-
\tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements.
9981+
\tcode{T} meets the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} requirements.
99829982
\item
99839983
Neither \tcode{unary_op} nor \tcode{binary_op} invalidates subranges,
99849984
nor modifies elements in the range \crange{first}{last}.
@@ -10127,7 +10127,7 @@
1012710127
\expects
1012810128
\begin{itemize}
1012910129
\item
10130-
\tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements.
10130+
\tcode{T} meets the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} requirements.
1013110131
\item
1013210132
\tcode{binary_op} neither invalidates iterators or subranges,
1013310133
nor modifies elements in
@@ -10248,7 +10248,7 @@
1024810248
\begin{itemize}
1024910249
\item
1025010250
If \tcode{init} is provided,
10251-
\tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements;
10251+
\tcode{T} meets the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} requirements;
1025210252
otherwise, \tcode{U}
1025310253
meets the \oldconcept{MoveConstructible} requirements.
1025410254
\item
@@ -10327,7 +10327,7 @@
1032710327
\expects
1032810328
\begin{itemize}
1032910329
\item
10330-
\tcode{T} meets the \oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements.
10330+
\tcode{T} meets the \oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} requirements.
1033110331
\item
1033210332
Neither \tcode{unary_op} nor \tcode{binary_op}
1033310333
invalidates iterators or subranges, nor modifies elements in
@@ -10426,7 +10426,7 @@
1042610426
\begin{itemize}
1042710427
\item
1042810428
If \tcode{init} is provided, \tcode{T} meets the
10429-
\oldconcept{MoveConstructible} (\tref{cpp17.moveconstructible}) requirements;
10429+
\oldconcept{MoveConstructible}\iref{utility.req.cpp17.moveconstructible} requirements;
1043010430
otherwise, \tcode{U} meets the
1043110431
\oldconcept{MoveConstructible} requirements.
1043210432
\item
@@ -10527,7 +10527,7 @@
1052710527
\begin{itemize}
1052810528
\item
1052910529
For the overloads with no \tcode{ExecutionPolicy},
10530-
\tcode{T} meets the \oldconcept{MoveAssignable} (\tref{cpp17.moveassignable})
10530+
\tcode{T} meets the \oldconcept{MoveAssignable}\iref{utility.req.cpp17.moveassignable}
1053110531
requirements.
1053210532
\item
1053310533
For all overloads, in the ranges \crange{first}{last}

source/concepts.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,7 @@
754754
\begin{itemdescr}
755755
\pnum
756756
\begin{note}
757-
Unlike the \oldconcept{Destructible} requirements~(\tref{cpp17.destructible}), this
757+
Unlike the \oldconcept{Destructible} requirements\iref{utility.req.cpp17.destructible}, this
758758
concept forbids destructors that are potentially throwing, even if a particular
759759
invocation of the destructor does not actually throw.
760760
\end{note}

source/future.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@
237237
\begin{itemdescr}
238238
\pnum
239239
\requires
240-
Type \tcode{T} is \oldconcept{EqualityComparable} (\tref{cpp17.equalitycomparable}).
240+
Type \tcode{T} is \oldconcept{EqualityComparable}\iref{utility.req.cpp17.equalitycomparable}.
241241

242242
\pnum
243243
\returns
@@ -252,7 +252,7 @@
252252
\begin{itemdescr}
253253
\pnum
254254
\requires
255-
Type \tcode{T} is \oldconcept{LessThanComparable} (\tref{cpp17.lessthancomparable}).
255+
Type \tcode{T} is \oldconcept{LessThanComparable}\iref{utility.req.cpp17.lessthancomparable}.
256256

257257
\pnum
258258
\returns
@@ -267,7 +267,7 @@
267267
\begin{itemdescr}
268268
\pnum
269269
\requires
270-
Type \tcode{T} is \oldconcept{LessThanComparable} (\tref{cpp17.lessthancomparable}).
270+
Type \tcode{T} is \oldconcept{LessThanComparable}\iref{utility.req.cpp17.lessthancomparable}.
271271

272272
\pnum
273273
\returns
@@ -282,7 +282,7 @@
282282
\begin{itemdescr}
283283
\pnum
284284
\requires
285-
Type \tcode{T} is \oldconcept{LessThanComparable} (\tref{cpp17.lessthancomparable}).
285+
Type \tcode{T} is \oldconcept{LessThanComparable}\iref{utility.req.cpp17.lessthancomparable}.
286286

287287
\pnum
288288
\returns

0 commit comments

Comments
 (0)