Skip to content

Commit 4638e61

Browse files
committed
Use new link macros.
1 parent e3709cd commit 4638e61

29 files changed

+729
-772
lines changed

source/algorithms.tex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
\pnum
77
This Clause describes components that \Cpp{} programs may use to perform
8-
algorithmic operations on containers\iref{containers} and other sequences.
8+
algorithmic operations on \link{containers}{containers} and other sequences.
99

1010
\pnum
1111
The following subclauses describe components for
@@ -7863,7 +7863,7 @@
78637863

78647864
\pnum
78657865
\remarks
7866-
Stable\iref{algorithm.stable}.
7866+
\link{Stable}{algorithm.stable}.
78677867
\end{itemdescr}
78687868

78697869
\begin{itemdecl}
@@ -11473,7 +11473,7 @@
1147311473
\pnum
1147411474
\constraints
1147511475
The expression \tcode{::new (declval<void*>()) T(declval<Args>()...)}
11476-
is well-formed when treated as an unevaluated operand\iref{term.unevaluated.operand}.
11476+
is well-formed when treated as an \deflink{unevaluated operand}{expr.context}.
1147711477

1147811478
\pnum
1147911479
\effects

source/basic.tex

Lines changed: 64 additions & 65 deletions
Large diffs are not rendered by default.

source/classes.tex

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,10 @@
186186
\item has no non-static data members of type non-standard-layout class
187187
(or array of such types) or reference,
188188

189-
\item has no virtual functions\iref{class.virtual} and no
190-
virtual base classes\iref{class.mi},
189+
\item has no \link{virtual functions}{class.virtual} and no
190+
\link{virtual base classes}{class.mi},
191191

192-
\item has the same access control\iref{class.access}
192+
\item has the same \link{access control}{class.access}
193193
for all non-static data members,
194194

195195
\item has no non-standard-layout base classes,
@@ -532,7 +532,7 @@
532532
\end{itemize}
533533
For any other \grammarterm{member-declaration},
534534
each declared entity
535-
that is not an unnamed bit-field\iref{class.bit}
535+
that is not an \deflinkx{unnamed bit-field}{bit-field!unnamed}{class.bit}
536536
is a member of the class,
537537
and each such \grammarterm{member-declaration}
538538
shall either
@@ -547,7 +547,7 @@
547547
enumerations\iref{dcl.enum} declared in the class and arbitrary types
548548
declared as members by use of a typedef declaration\iref{dcl.typedef}
549549
or \grammarterm{alias-declaration}.
550-
The enumerators of an unscoped enumeration\iref{dcl.enum} defined in the class
550+
The enumerators of an \link{unscoped enumeration}{dcl.enum} defined in the class
551551
are members of the class.
552552

553553
\pnum
@@ -562,7 +562,7 @@
562562
\defnadj{non-static}{member function}\iref{class.mfct.non.static}, respectively).
563563
\begin{note}
564564
A non-static data member of non-reference
565-
type is a member subobject of a class object\iref{intro.object}.
565+
type is a \deflink{member subobject}{intro.object} of a class object.
566566
\end{note}
567567

568568
\pnum
@@ -676,9 +676,9 @@
676676
The
677677
\grammarterm{member-declarator-list} can be omitted only after a
678678
\grammarterm{class-specifier} or an \grammarterm{enum-specifier} or in a
679-
friend declaration\iref{class.friend}. A
679+
\link{friend declaration}{class.friend}. A
680680
\grammarterm{pure-specifier} shall be used only in the declaration of a
681-
virtual function\iref{class.virtual}
681+
\link{virtual function}{class.virtual}
682682
that is not a friend declaration.
683683

684684
\pnum
@@ -764,8 +764,8 @@
764764

765765
\item every member function of class \tcode{T};
766766
\begin{note}
767-
This restriction does not apply to constructors, which do not have
768-
names\iref{class.ctor}
767+
This restriction does not apply to \link{constructors}{class.ctor},
768+
which do not have names
769769
\end{note}%
770770

771771
\item every member of class \tcode{T} that is itself a type;
@@ -781,7 +781,7 @@
781781

782782
\pnum
783783
In addition, if class \tcode{T} has a user-declared
784-
constructor\iref{class.ctor}, every non-static data member of class
784+
\link{constructor}{class.ctor}, every non-static data member of class
785785
\tcode{T} shall have a name different from \tcode{T}.
786786

787787
\pnum
@@ -831,7 +831,7 @@
831831
types\iref{term.layout.compatible.type}.
832832

833833
\pnum
834-
In a standard-layout union with an active member\iref{class.union}
834+
In a standard-layout union with an \deflinkx{active member}{active!union member}{class.union}
835835
of struct type \tcode{T1}, it is permitted to read a non-static
836836
data member \tcode{m} of another union member of struct type \tcode{T2}
837837
provided \tcode{m} is part of the common initial sequence of \tcode{T1} and \tcode{T2};
@@ -2166,7 +2166,7 @@
21662166
An array of class type contains several subobjects for each of which
21672167
the destructor is invoked.
21682168
\end{note}
2169-
A destructor can also be invoked explicitly. A destructor is \term{potentially invoked}
2169+
A destructor can also be invoked explicitly. A destructor is \defn{potentially invoked}
21702170
if it is invoked or as specified in~\ref{expr.new},
21712171
\ref{stmt.return}, \ref{dcl.init.aggr},
21722172
\ref{class.base.init}, and~\ref{except.throw}.
@@ -6251,7 +6251,7 @@
62516251
the copy/move operation can be omitted by
62526252
constructing the object directly into the exception object
62536253

6254-
\item in a coroutine\iref{dcl.fct.def.coroutine}, a copy of a coroutine parameter
6254+
\item in a \link{coroutine}{dcl.fct.def.coroutine}, a copy of a coroutine parameter
62556255
can be omitted and references to that copy replaced with references to the
62566256
corresponding parameter if the meaning of the program will be unchanged except for
62576257
the execution of a constructor and destructor for the parameter copy object

source/compatibility.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1706,8 +1706,8 @@
17061706
A conditional expression with a throw expression as its second or third
17071707
operand keeps the type and value category of the other operand.
17081708
\rationale
1709-
Formerly mandated conversions (lvalue-to-rvalue\iref{conv.lval},
1710-
array-to-pointer\iref{conv.array}, and function-to-pointer\iref{conv.func}
1709+
Formerly mandated conversions (\link{lvalue-to-rvalue}{conv.lval},
1710+
\link{array-to-pointer}{conv.array}, and \link{function-to-pointer}{conv.func}
17111711
standard conversions), especially the creation of the temporary due to
17121712
lvalue-to-rvalue conversion, were considered gratuitous and surprising.
17131713
\effect

source/concepts.tex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@
300300

301301
\begin{itemdecl}
302302
template<class T, class U>
303-
concept @\defexposconcept{same-as-impl}@ = is_same_v<T, U>; // \expos
303+
concept @\defexposconcept{same-as-impl}@ = @\libglobalref{is_same_v}@<T, U>; // \expos
304304

305305
template<class T, class U>
306306
concept @\deflibconcept{same_as}@ = @\exposconcept{same-as-impl}@<T, U> && @\exposconcept{same-as-impl}@<U, T>;
@@ -493,13 +493,13 @@
493493

494494
\begin{itemdecl}
495495
template<class T>
496-
concept @\deflibconcept{integral}@ = is_integral_v<T>;
496+
concept @\deflibconcept{integral}@ = @\libglobalref{is_integral_v}@<T>;
497497
template<class T>
498-
concept @\deflibconcept{signed_integral}@ = @\libconcept{integral}@<T> && is_signed_v<T>;
498+
concept @\deflibconcept{signed_integral}@ = @\libconcept{integral}@<T> && @\libglobalref{is_signed_v}@<T>;
499499
template<class T>
500500
concept @\deflibconcept{unsigned_integral}@ = @\libconcept{integral}@<T> && !@\libconcept{signed_integral}@<T>;
501501
template<class T>
502-
concept @\deflibconcept{floating_point}@ = is_floating_point_v<T>;
502+
concept @\deflibconcept{floating_point}@ = @\libglobalref{is_floating_point_v}@<T>;
503503
\end{itemdecl}
504504

505505
\begin{itemdescr}
@@ -748,7 +748,7 @@
748748

749749
\begin{itemdecl}
750750
template<class T>
751-
concept @\deflibconcept{destructible}@ = is_nothrow_destructible_v<T>;
751+
concept @\deflibconcept{destructible}@ = @\libglobalref{is_nothrow_destructible_v}@<T>;
752752
\end{itemdecl}
753753

754754
\begin{itemdescr}
@@ -768,7 +768,7 @@
768768

769769
\begin{itemdecl}
770770
template<class T, class... Args>
771-
concept @\deflibconcept{constructible_from}@ = @\libconcept{destructible}@<T> && is_constructible_v<T, Args...>;
771+
concept @\deflibconcept{constructible_from}@ = @\libconcept{destructible}@<T> && @\libglobalref{is_constructible_v}@<T, Args...>;
772772
\end{itemdecl}
773773

774774
\rSec2[concept.default.init]{Concept \cname{default_initializable}}

source/containers.tex

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6186,14 +6186,14 @@
61866186
\indextext{\idxcode{array}!contiguous storage}%
61876187
The header \libheader{array} defines a class template for storing fixed-size
61886188
sequences of objects.
6189-
An \tcode{array} is a contiguous container\iref{container.reqmts}.
6189+
An \tcode{array} is a \deflinkx{contiguous container}{container!contiguous}{container.reqmts}.
61906190
An instance of \tcode{array<T, N>} stores \tcode{N} elements of type \tcode{T},
61916191
so that \tcode{size() == N} is an invariant.
61926192

61936193
\pnum
61946194
\indextext{\idxcode{array}!initialization}%
61956195
\indextext{\idxcode{array}!as aggregate}%
6196-
An \tcode{array} is an aggregate\iref{dcl.init.aggr} that can be
6196+
An \tcode{array} is an \deflink{aggregate}{dcl.init.aggr} that can be
61976197
list-initialized with up
61986198
to \tcode{N} elements whose types are convertible to \tcode{T}.
61996199

@@ -6204,8 +6204,8 @@
62046204
of a reversible container\iref{container.rev.reqmts},
62056205
except that a default
62066206
constructed \tcode{array} object is not empty if $\tcode{N} > 0$.
6207-
An \tcode{array} meets some of the requirements of a sequence
6208-
container\iref{sequence.reqmts}.
6207+
An \tcode{array} meets some of the requirements of a
6208+
\link{sequence container}{sequence.reqmts}.
62096209
Descriptions are provided here
62106210
only for operations on \tcode{array} that are not described in
62116211
one of these tables and
@@ -6215,13 +6215,13 @@
62156215
\tcode{array<T, N>} is a structural type\iref{term.structural.type} if
62166216
\tcode{T} is a structural type.
62176217
Two values \tcode{a1} and \tcode{a2} of type \tcode{array<T, N>}
6218-
are template-argument-equivalent\iref{temp.type} if and only if
6218+
are \deflink{template-argument-equivalent}{temp.type} if and only if
62196219
each pair of corresponding elements in \tcode{a1} and \tcode{a2}
62206220
are template-argument-equivalent.
62216221

62226222
\pnum
62236223
The types \tcode{iterator} and \tcode{const_iterator} meet
6224-
the constexpr iterator requirements\iref{iterator.requirements.general}.
6224+
the \deflinkx{constexpr iterator}{iterator!constexpr}{iterator.requirements.general} requirements.
62256225

62266226
\indexlibraryglobal{array}%
62276227
\indexlibrarymember{array}{begin}%
@@ -6295,7 +6295,7 @@
62956295
\pnum
62966296
\indextext{\idxcode{array}!initialization}%
62976297
\indextext{requirements!container}%
6298-
The conditions for an aggregate\iref{dcl.init.aggr} shall be
6298+
The conditions for an \deflink{aggregate}{dcl.init.aggr} shall be
62996299
met. Class \tcode{array} relies on the implicitly-declared special
63006300
member functions\iref{class.default.ctor,class.dtor,class.copy.ctor} to
63016301
conform to the container requirements table in~\ref{container.requirements}.
@@ -6509,7 +6509,7 @@
65096509
A
65106510
\indexlibraryglobal{deque}%
65116511
\tcode{deque}
6512-
is a sequence container that supports random access iterators\iref{random.access.iterators}.
6512+
is a sequence container that supports \link{random access iterators}{random.access.iterators}.
65136513
In addition, it supports constant time insert and erase operations at the beginning or the end;
65146514
insert and erase in the middle take linear time.
65156515
That is, a deque is especially optimized for pushing and popping elements at the beginning and end.
@@ -7124,7 +7124,7 @@
71247124
\pnum
71257125
An incomplete type \tcode{T} may be used when instantiating \tcode{forward_list}
71267126
if the allocator meets the
7127-
allocator completeness requirements\iref{allocator.requirements.completeness}.
7127+
\link{allocator completeness requirements}{allocator.requirements.completeness}.
71287128
\tcode{T} shall be complete before any member of the resulting specialization
71297129
of \tcode{forward_list} is referenced.
71307130

@@ -7704,7 +7704,7 @@
77047704

77057705
\pnum
77067706
\remarks
7707-
Stable\iref{algorithm.stable}.
7707+
\link{Stable}{algorithm.stable}.
77087708
\end{itemdescr}
77097709

77107710
\indexlibrarymember{unique}{forward_list}%
@@ -7809,7 +7809,7 @@
78097809

78107810
\pnum
78117811
\remarks
7812-
Stable\iref{algorithm.stable}.
7812+
\link{Stable}{algorithm.stable}.
78137813
\end{itemdescr}
78147814

78157815
\indexlibrarymember{reverse}{forward_list}%
@@ -7867,7 +7867,7 @@
78677867
is a sequence container that supports
78687868
bidirectional iterators and allows constant time insert and erase
78697869
operations anywhere within the sequence, with storage management handled
7870-
automatically. Unlike vectors\iref{vector} and deques\iref{deque},
7870+
automatically. Unlike \link{vectors}{vector} and \link{deques}{deque},
78717871
fast random access to list elements is not supported, but many
78727872
algorithms only need sequential access anyway.
78737873

@@ -8036,7 +8036,7 @@
80368036
\pnum
80378037
An incomplete type \tcode{T} may be used when instantiating \tcode{list}
80388038
if the allocator meets the
8039-
allocator completeness requirements\iref{allocator.requirements.completeness}.
8039+
\link{allocator completeness requirements}{allocator.requirements.completeness}.
80408040
\tcode{T} shall be complete before any member of the resulting specialization
80418041
of \tcode{list} is referenced.
80428042

@@ -8450,7 +8450,7 @@
84508450

84518451
\pnum
84528452
\remarks
8453-
Stable\iref{algorithm.stable}.
8453+
\link{Stable}{algorithm.stable}.
84548454
\end{itemdescr}
84558455

84568456
\indexlibrarymember{unique}{list}%
@@ -8574,7 +8574,7 @@
85748574

85758575
\pnum
85768576
\remarks
8577-
Stable\iref{algorithm.stable}.
8577+
\link{Stable}{algorithm.stable}.
85788578
\end{itemdescr}
85798579

85808580
\rSec3[list.erasure]{Erasure}
@@ -8627,7 +8627,7 @@
86278627
of a sequence container, including most of the optional sequence container
86288628
requirements\iref{sequence.reqmts},
86298629
and, for an element type other than \tcode{bool},
8630-
of a contiguous container\iref{container.reqmts}.
8630+
of a \deflinkx{contiguous container}{container!contiguous}{container.reqmts}.
86318631
The exceptions are the
86328632
\tcode{push_front}, \tcode{prepend_range}, \tcode{pop_front}, and \tcode{emplace_front} member functions, which are not
86338633
provided. Descriptions are provided here only for operations on \tcode{vector}
@@ -8765,7 +8765,7 @@
87658765
\pnum
87668766
An incomplete type \tcode{T} may be used when instantiating \tcode{vector}
87678767
if the allocator meets the
8768-
allocator completeness requirements\iref{allocator.requirements.completeness}.
8768+
\link{allocator completeness requirements}{allocator.requirements.completeness}.
87698769
\tcode{T} shall be complete before any member of the resulting specialization
87708770
of \tcode{vector} is referenced.
87718771

@@ -9336,7 +9336,7 @@
93369336
semantics as the primary \tcode{vector} template, except that operations
93379337
dealing with the \tcode{bool} value type map to bit values in the
93389338
container storage and
9339-
\tcode{allocator_traits::construct}\iref{allocator.traits.members}
9339+
\libmemberrefx{allocator_traits::construct}{allocator_traits}{construct}
93409340
is not used to construct these values.
93419341

93429342
\pnum
@@ -13850,9 +13850,9 @@
1385013850
can be used to instantiate
1385113851
\tcode{queue}.
1385213852
In particular,
13853-
\tcode{list}\iref{list}
13853+
\link{\tcode{list}}{list}
1385413854
and
13855-
\tcode{deque}\iref{deque}
13855+
\link{\tcode{deque}}{deque}
1385613856
can be used.
1385713857

1385813858
\begin{codeblock}
@@ -14207,15 +14207,15 @@
1420714207
can be used to instantiate
1420814208
\tcode{priority_queue}.
1420914209
In particular,
14210-
\tcode{vector}\iref{vector}
14210+
\link{\tcode{vector}}{vector}
1421114211
and
14212-
\tcode{deque}\iref{deque}
14212+
\link{\tcode{deque}}{deque}
1421314213
can be used.
1421414214
Instantiating
1421514215
\tcode{priority_queue}
1421614216
also involves supplying a function or function object for making
1421714217
priority comparisons; the library assumes that the function or function
14218-
object defines a strict weak ordering\iref{alg.sorting}.
14218+
object defines a \link{strict weak ordering}{alg.sorting}.
1421914219

1422014220
\begin{codeblock}
1422114221
namespace std {
@@ -14715,10 +14715,10 @@
1471514715
can be used to instantiate
1471614716
\tcode{stack}.
1471714717
In particular,
14718-
\tcode{vector}\iref{vector},
14719-
\tcode{list}\iref{list}
14718+
\link{\tcode{vector}}{vector},
14719+
\link{\tcode{list}}{list}
1472014720
and
14721-
\tcode{deque}\iref{deque}
14721+
\link{\tcode{deque}}{deque}
1472214722
can be used.
1472314723

1472414724
\rSec3[stack.defn]{Definition}

0 commit comments

Comments
 (0)