Skip to content

Commit fe9c867

Browse files
committed
Use new link macros.
1 parent f616d5f commit fe9c867

29 files changed

+736
-779
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
@@ -7862,7 +7862,7 @@
78627862

78637863
\pnum
78647864
\remarks
7865-
Stable\iref{algorithm.stable}.
7865+
\link{Stable}{algorithm.stable}.
78667866
\end{itemdescr}
78677867

78687868
\begin{itemdecl}
@@ -11347,7 +11347,7 @@
1134711347
\pnum
1134811348
\constraints
1134911349
The expression \tcode{::new (declval<void*>()) T(declval<Args>()...)}
11350-
is well-formed when treated as an unevaluated operand\iref{term.unevaluated.operand}.
11350+
is well-formed when treated as an \deflink{unevaluated operand}{expr.context}.
1135111351

1135211352
\pnum
1135311353
\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
@@ -830,7 +830,7 @@
830830
types\iref{term.layout.compatible.type}.
831831

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

6225-
\item in a coroutine\iref{dcl.fct.def.coroutine}, a copy of a coroutine parameter
6225+
\item in a \link{coroutine}{dcl.fct.def.coroutine}, a copy of a coroutine parameter
62266226
can be omitted and references to that copy replaced with references to the
62276227
corresponding parameter if the meaning of the program will be unchanged except for
62286228
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
@@ -1580,8 +1580,8 @@
15801580
A conditional expression with a throw expression as its second or third
15811581
operand keeps the type and value category of the other operand.
15821582
\rationale
1583-
Formerly mandated conversions (lvalue-to-rvalue\iref{conv.lval},
1584-
array-to-pointer\iref{conv.array}, and function-to-pointer\iref{conv.func}
1583+
Formerly mandated conversions (\link{lvalue-to-rvalue}{conv.lval},
1584+
\link{array-to-pointer}{conv.array}, and \link{function-to-pointer}{conv.func}
15851585
standard conversions), especially the creation of the temporary due to
15861586
lvalue-to-rvalue conversion, were considered gratuitous and surprising.
15871587
\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
@@ -6183,14 +6183,14 @@
61836183
\indextext{\idxcode{array}!contiguous storage}%
61846184
The header \libheader{array} defines a class template for storing fixed-size
61856185
sequences of objects.
6186-
An \tcode{array} is a contiguous container\iref{container.reqmts}.
6186+
An \tcode{array} is a \deflinkx{contiguous container}{container!contiguous}{container.reqmts}.
61876187
An instance of \tcode{array<T, N>} stores \tcode{N} elements of type \tcode{T},
61886188
so that \tcode{size() == N} is an invariant.
61896189

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

@@ -6201,8 +6201,8 @@
62016201
of a reversible container\iref{container.rev.reqmts},
62026202
except that a default
62036203
constructed \tcode{array} object is not empty if $\tcode{N} > 0$.
6204-
An \tcode{array} meets some of the requirements of a sequence
6205-
container\iref{sequence.reqmts}.
6204+
An \tcode{array} meets some of the requirements of a
6205+
\link{sequence container}{sequence.reqmts}.
62066206
Descriptions are provided here
62076207
only for operations on \tcode{array} that are not described in
62086208
one of these tables and
@@ -6212,13 +6212,13 @@
62126212
\tcode{array<T, N>} is a structural type\iref{term.structural.type} if
62136213
\tcode{T} is a structural type.
62146214
Two values \tcode{a1} and \tcode{a2} of type \tcode{array<T, N>}
6215-
are template-argument-equivalent\iref{temp.type} if and only if
6215+
are \deflink{template-argument-equivalent}{temp.type} if and only if
62166216
each pair of corresponding elements in \tcode{a1} and \tcode{a2}
62176217
are template-argument-equivalent.
62186218

62196219
\pnum
62206220
The types \tcode{iterator} and \tcode{const_iterator} meet
6221-
the constexpr iterator requirements\iref{iterator.requirements.general}.
6221+
the \deflinkx{constexpr iterator}{iterator!constexpr}{iterator.requirements.general} requirements.
62226222

62236223
\indexlibraryglobal{array}%
62246224
\indexlibrarymember{array}{begin}%
@@ -6292,7 +6292,7 @@
62926292
\pnum
62936293
\indextext{\idxcode{array}!initialization}%
62946294
\indextext{requirements!container}%
6295-
The conditions for an aggregate\iref{dcl.init.aggr} shall be
6295+
The conditions for an \deflink{aggregate}{dcl.init.aggr} shall be
62966296
met. Class \tcode{array} relies on the implicitly-declared special
62976297
member functions\iref{class.default.ctor,class.dtor,class.copy.ctor} to
62986298
conform to the container requirements table in~\ref{container.requirements}.
@@ -6506,7 +6506,7 @@
65066506
A
65076507
\indexlibraryglobal{deque}%
65086508
\tcode{deque}
6509-
is a sequence container that supports random access iterators\iref{random.access.iterators}.
6509+
is a sequence container that supports \link{random access iterators}{random.access.iterators}.
65106510
In addition, it supports constant time insert and erase operations at the beginning or the end;
65116511
insert and erase in the middle take linear time.
65126512
That is, a deque is especially optimized for pushing and popping elements at the beginning and end.
@@ -7121,7 +7121,7 @@
71217121
\pnum
71227122
An incomplete type \tcode{T} may be used when instantiating \tcode{forward_list}
71237123
if the allocator meets the
7124-
allocator completeness requirements\iref{allocator.requirements.completeness}.
7124+
\link{allocator completeness requirements}{allocator.requirements.completeness}.
71257125
\tcode{T} shall be complete before any member of the resulting specialization
71267126
of \tcode{forward_list} is referenced.
71277127

@@ -7701,7 +7701,7 @@
77017701

77027702
\pnum
77037703
\remarks
7704-
Stable\iref{algorithm.stable}.
7704+
\link{Stable}{algorithm.stable}.
77057705
\end{itemdescr}
77067706

77077707
\indexlibrarymember{unique}{forward_list}%
@@ -7806,7 +7806,7 @@
78067806

78077807
\pnum
78087808
\remarks
7809-
Stable\iref{algorithm.stable}.
7809+
\link{Stable}{algorithm.stable}.
78107810
\end{itemdescr}
78117811

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

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

@@ -8447,7 +8447,7 @@
84478447

84488448
\pnum
84498449
\remarks
8450-
Stable\iref{algorithm.stable}.
8450+
\link{Stable}{algorithm.stable}.
84518451
\end{itemdescr}
84528452

84538453
\indexlibrarymember{unique}{list}%
@@ -8571,7 +8571,7 @@
85718571

85728572
\pnum
85738573
\remarks
8574-
Stable\iref{algorithm.stable}.
8574+
\link{Stable}{algorithm.stable}.
85758575
\end{itemdescr}
85768576

85778577
\rSec3[list.erasure]{Erasure}
@@ -8624,7 +8624,7 @@
86248624
of a sequence container, including most of the optional sequence container
86258625
requirements\iref{sequence.reqmts},
86268626
and, for an element type other than \tcode{bool},
8627-
of a contiguous container\iref{container.reqmts}.
8627+
of a \deflinkx{contiguous container}{container!contiguous}{container.reqmts}.
86288628
The exceptions are the
86298629
\tcode{push_front}, \tcode{prepend_range}, \tcode{pop_front}, and \tcode{emplace_front} member functions, which are not
86308630
provided. Descriptions are provided here only for operations on \tcode{vector}
@@ -8762,7 +8762,7 @@
87628762
\pnum
87638763
An incomplete type \tcode{T} may be used when instantiating \tcode{vector}
87648764
if the allocator meets the
8765-
allocator completeness requirements\iref{allocator.requirements.completeness}.
8765+
\link{allocator completeness requirements}{allocator.requirements.completeness}.
87668766
\tcode{T} shall be complete before any member of the resulting specialization
87678767
of \tcode{vector} is referenced.
87688768

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

93399339
\pnum
@@ -13847,9 +13847,9 @@
1384713847
can be used to instantiate
1384813848
\tcode{queue}.
1384913849
In particular,
13850-
\tcode{list}\iref{list}
13850+
\link{\tcode{list}}{list}
1385113851
and
13852-
\tcode{deque}\iref{deque}
13852+
\link{\tcode{deque}}{deque}
1385313853
can be used.
1385413854

1385513855
\begin{codeblock}
@@ -14204,15 +14204,15 @@
1420414204
can be used to instantiate
1420514205
\tcode{priority_queue}.
1420614206
In particular,
14207-
\tcode{vector}\iref{vector}
14207+
\link{\tcode{vector}}{vector}
1420814208
and
14209-
\tcode{deque}\iref{deque}
14209+
\link{\tcode{deque}}{deque}
1421014210
can be used.
1421114211
Instantiating
1421214212
\tcode{priority_queue}
1421314213
also involves supplying a function or function object for making
1421414214
priority comparisons; the library assumes that the function or function
14215-
object defines a strict weak ordering\iref{alg.sorting}.
14215+
object defines a \link{strict weak ordering}{alg.sorting}.
1421614216

1421714217
\begin{codeblock}
1421814218
namespace std {
@@ -14712,10 +14712,10 @@
1471214712
can be used to instantiate
1471314713
\tcode{stack}.
1471414714
In particular,
14715-
\tcode{vector}\iref{vector},
14716-
\tcode{list}\iref{list}
14715+
\link{\tcode{vector}}{vector},
14716+
\link{\tcode{list}}{list}
1471714717
and
14718-
\tcode{deque}\iref{deque}
14718+
\link{\tcode{deque}}{deque}
1471914719
can be used.
1472014720

1472114721
\rSec3[stack.defn]{Definition}

0 commit comments

Comments
 (0)