Skip to content

Commit d1064f3

Browse files
committed
Use new link macros.
1 parent 55f848e commit d1064f3

27 files changed

+620
-629
lines changed

source/algorithms.tex

Lines changed: 2 additions & 2 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
@@ -8106,7 +8106,7 @@
81068106

81078107
\pnum
81088108
\remarks
8109-
Stable\iref{algorithm.stable}.
8109+
\link{Stable}{algorithm.stable}.
81108110
\end{itemdescr}
81118111

81128112
\begin{itemdecl}

source/basic.tex

Lines changed: 53 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@
127127
\indextext{linkage}%
128128
A name used in more than one translation unit can potentially
129129
refer to the same entity in these translation units depending on the
130-
linkage\iref{basic.link} of the name specified in each
130+
\link{linkage}{basic.link} of the name specified in each
131131
translation unit.
132132

133133
\rSec1[basic.def]{Declarations and definitions}
@@ -149,7 +149,7 @@
149149
\item a static assertion\iref{dcl.pre},
150150
\item controlling template instantiation\iref{temp.explicit},
151151
\item guiding template argument deduction for constructors\iref{temp.deduct.guide},
152-
\item use of attributes\iref{dcl.attr}, and
152+
\item use of \link{attributes}{dcl.attr}, and
153153
\item nothing (in the case of an \grammarterm{empty-declaration}).
154154
\end{itemize}
155155

@@ -233,7 +233,7 @@
233233
\item it is
234234
an explicit instantiation declaration\iref{temp.explicit}, or
235235
\item it is
236-
an explicit specialization\iref{temp.expl.spec} whose
236+
an \link{explicit specialization}{temp.expl.spec} whose
237237
\grammarterm{declaration} is not a definition.
238238
\end{itemize}
239239
A declaration is said to be a \defn{definition} of each entity that it defines.
@@ -275,7 +275,7 @@
275275
default constructor\iref{class.default.ctor},
276276
copy constructor, move constructor\iref{class.copy.ctor},
277277
copy assignment operator, move assignment operator\iref{class.copy.assign},
278-
or destructor\iref{class.dtor} member functions.
278+
or \link{destructor}{class.dtor} member functions.
279279
\end{note}
280280
\begin{example}
281281
Given
@@ -359,7 +359,7 @@
359359
\item If $E$ is an
360360
\grammarterm{id-expression}\iref{expr.prim.id}, the set
361361
contains only $E$.
362-
\item If $E$ is a subscripting operation\iref{expr.sub} with
362+
\item If $E$ is a \link{subscripting}{expr.sub} operation with
363363
an array operand, the set contains the potential results of that operand.
364364
\item If $E$ is a class member access
365365
expression\iref{expr.ref} of the form
@@ -369,16 +369,15 @@
369369
\item If $E$ is a class member access expression
370370
naming a static data member,
371371
the set contains the \grammarterm{id-expression} designating the data member.
372-
\item If $E$ is a pointer-to-member
373-
expression\iref{expr.mptr.oper} of the form
372+
\item If $E$ is a \link{pointer-to-member expression}{expr.mptr.oper} of the form
374373
$E_1$ \tcode{.*} $E_2$,
375374
the set contains the potential results of $E_1$.
376375
\item If $E$ has the form \tcode{($E_1$)}, the set contains the
377376
potential results of $E_1$.
378-
\item If $E$ is a glvalue conditional
379-
expression\iref{expr.cond}, the set is the union of the sets of
377+
\item If $E$ is a glvalue \link{conditional expression}{expr.cond},
378+
the set is the union of the sets of
380379
potential results of the second and third operands.
381-
\item If $E$ is a comma expression\iref{expr.comma}, the set
380+
\item If $E$ is a \link{comma expression}{expr.comma}, the set
382381
contains the potential results of the right operand.
383382
\item Otherwise, the set is empty.
384383
\end{itemize}
@@ -528,8 +527,8 @@
528527
copy assignment or move assignment function for another class as specified
529528
in~\ref{class.copy.assign}.
530529
A constructor for a class is odr-used as specified
531-
in~\ref{dcl.init}. A destructor for a class is odr-used if it is potentially
532-
invoked\iref{class.dtor}.
530+
in~\ref{dcl.init}. A destructor for a class is odr-used if it is
531+
\deflink{potentially invoked}{class.dtor}.
533532

534533
\pnum
535534
A local entity\iref{basic.pre}
@@ -600,7 +599,7 @@
600599
\pnum
601600
Every program shall contain at least one definition of every
602601
function or variable that is odr-used in that program
603-
outside of a discarded statement\iref{stmt.if}; no diagnostic required.
602+
outside of a \deflink{discarded statement}{stmt.if}; no diagnostic required.
604603
The definition can appear explicitly in the program, it can be found in
605604
the standard or a user-defined library, or (when appropriate) it is
606605
implicitly defined (see~\ref{class.default.ctor}, \ref{class.copy.ctor},
@@ -648,9 +647,9 @@
648647
describe in which contexts complete class types are required. A class
649648
type \tcode{T} must be complete if
650649
\begin{itemize}
651-
\item an object of type \tcode{T} is defined\iref{basic.def}, or
652-
\item a non-static class data member of type \tcode{T} is
653-
declared\iref{class.mem}, or
650+
\item an object of type \tcode{T} is \link{defined}{basic.def}, or
651+
\item a non-static class \deflink{data member}{class.mem} of
652+
type \tcode{T} is declared, or
654653
\item \tcode{T} is used as the allocated type or array element type in a
655654
\grammarterm{new-expression}\iref{expr.new}, or
656655
\item an lvalue-to-rvalue conversion is applied to
@@ -670,7 +669,7 @@
670669
\keyword{sizeof} operator\iref{expr.sizeof} is applied to an operand of
671670
type \tcode{T}, or
672671
\item a function with a return type or argument type of type \tcode{T}
673-
is defined\iref{basic.def} or called\iref{expr.call}, or
672+
is defined\iref{basic.def} or \link{called}{expr.call}, or
674673
\item a class with a base class of type \tcode{T} is
675674
defined\iref{class.derived}, or
676675
\item an lvalue of type \tcode{T} is assigned to\iref{expr.assign}, or
@@ -716,7 +715,7 @@
716715
a non-volatile const object with internal or no linkage if the object
717716
\begin{itemize}
718717
\item has the same literal type in all definitions of \tcode{D},
719-
\item is initialized with a constant expression\iref{expr.const},
718+
\item is initialized with a \link{constant expression}{expr.const},
720719
\item is not odr-used in any definition of \tcode{D}, and
721720
\item has the same value in all definitions of \tcode{D},
722721
\end{itemize}
@@ -2690,7 +2689,7 @@
26902689

26912690
\pnum
26922691
\indextext{program}%
2693-
A \defn{program} consists of one or more translation units\iref{lex.separate}
2692+
A \defn{program} consists of one or more \deflinkx{translation units}{translation unit}{lex.separate}
26942693
linked together. A translation unit consists
26952694
of a sequence of declarations.
26962695

@@ -2723,7 +2722,7 @@
27232722
\indextext{linkage!\idxcode{inline} and}%
27242723
\indextext{\idxcode{inline}!linkage of}%
27252724
The name of an entity
2726-
that belongs to a namespace scope\iref{basic.scope.namespace}
2725+
that belongs to a \link{namespace scope}{basic.scope.namespace}
27272726
has internal linkage if it is the name of
27282727
\begin{itemize}
27292728
\item
@@ -2764,7 +2763,7 @@
27642763
purposes\iref{dcl.typedef}; or
27652764
\item
27662765
\indextext{enumeration!linkage of}%
2767-
a named enumeration\iref{dcl.enum}, or an unnamed enumeration defined
2766+
a named \link{enumeration}{dcl.enum}, or an unnamed enumeration defined
27682767
in a typedef declaration in which the enumeration has the typedef name
27692768
for linkage purposes\iref{dcl.typedef}; or
27702769
\item an unnamed enumeration
@@ -2840,7 +2839,7 @@
28402839
\pnum
28412840
\indextext{linkage!no}%
28422841
Names not covered by these rules have no linkage. Moreover, except as
2843-
noted, a name declared at block scope\iref{basic.scope.block} has no
2842+
noted, a name declared at \deflinkx{block scope}{scope!block}{basic.scope.block} has no
28442843
linkage.
28452844

28462845
\pnum
@@ -3162,8 +3161,8 @@
31623161
involve additional memory locations that are not accessible to programs but are
31633162
managed by the implementation.
31643163
\end{note}
3165-
Two or more threads of
3166-
execution\iref{intro.multithread} can access separate memory
3164+
Two or more \deflinkx{threads of
3165+
execution}{thread of execution}{intro.multithread} can access separate memory
31673166
locations without interfering with each other.
31683167

31693168
\pnum
@@ -3207,15 +3206,15 @@
32073206
The constructs in a \Cpp{} program create, destroy, refer to, access, and
32083207
manipulate objects.
32093208
An \defn{object} is created
3210-
by a definition\iref{basic.def},
3209+
by a \link{definition}{basic.def},
32113210
by a \grammarterm{new-expression}\iref{expr.new},
32123211
by an operation that implicitly creates objects (see below),
3213-
when implicitly changing the active member of a union\iref{class.union},
3212+
when implicitly changing the active member of a \link{union}{class.union},
32143213
or
32153214
when a temporary object is created\iref{conv.rval,class.temporary}.
32163215
An object occupies a region of storage
32173216
in its period of construction\iref{class.cdtor},
3218-
throughout its lifetime\iref{basic.life},
3217+
throughout its \link{lifetime}{basic.life},
32193218
and
32203219
in its period of destruction\iref{class.cdtor}.
32213220
\begin{note}
@@ -3345,7 +3344,7 @@
33453344
\begin{itemize}
33463345
\item a base class subobject, or
33473346
\item a non-static data member
3348-
declared with the \tcode{no_unique_address} attribute\iref{dcl.attr.nouniqueaddr}.
3347+
declared with the \link{\tcode{no_unique_address}}{dcl.attr.nouniqueaddr} attribute.
33493348
\end{itemize}
33503349

33513350
\pnum
@@ -3366,7 +3365,7 @@
33663365
are \impldef{which non-standard-layout objects
33673366
containing no data are considered empty}.
33683367
\indextext{most derived object!bit-field}%
3369-
Unless it is a bit-field\iref{class.bit},
3368+
Unless it is a \link{bit-field}{class.bit},
33703369
an object with nonzero size
33713370
shall occupy one or more bytes of storage,
33723371
including every byte that is occupied in full or in part
@@ -3931,16 +3930,16 @@
39313930
is produced by the evaluation of:
39323931
\begin{itemize}
39333932
\item
3934-
the second or third operand of a conditional expression\iref{expr.cond},
3933+
the second or third operand of a \link{conditional expression}{expr.cond},
39353934
\item
3936-
the right operand of a comma expression\iref{expr.comma},
3935+
the right operand of a \link{comma expression}{expr.comma},
39373936
\item
39383937
the operand of a cast or conversion\iref{conv.integral,
39393938
expr.type.conv,expr.static.cast,expr.cast}
39403939
to an unsigned ordinary character type
39413940
or \tcode{std::byte} type\iref{cstddef.syn}, or
39423941
\item
3943-
a discarded-value expression\iref{expr.context},
3942+
a \deflink{discarded-value expression}{expr.context},
39443943
\end{itemize}
39453944
then the result of the operation is an indeterminate value or
39463945
that erroneous value, respectively.
@@ -4131,8 +4130,8 @@
41314130
\indextext{storage duration!dynamic|(}
41324131

41334132
\pnum
4134-
Objects can be created dynamically during program
4135-
execution\iref{intro.execution}, using
4133+
Objects can be created dynamically during \link{program
4134+
execution}{intro.execution}, using
41364135
\indextext{\idxcode{new}}%
41374136
\grammarterm{new-expression}{s}\iref{expr.new}, and destroyed using
41384137
\indextext{\idxcode{delete}}%
@@ -4301,19 +4300,19 @@
43014300
\tcode{std::bad_alloc}\iref{bad.alloc}.
43024301

43034302
\pnum
4304-
A global allocation function is only called as the result of a new
4305-
expression\iref{expr.new}, or called directly using the function call
4306-
syntax\iref{expr.call}, or called indirectly to allocate storage for
4303+
A global allocation function is only called as the result of a \link{new
4304+
expression}{expr.new}, or called directly using the \link{function call}{expr.call}
4305+
syntax, or called indirectly to allocate storage for
43074306
a coroutine state\iref{dcl.fct.def.coroutine},
43084307
or called indirectly through calls to the
43094308
functions in the \Cpp{} standard library.
43104309
\begin{note}
43114310
In particular, a
43124311
global allocation function is not called to allocate storage for objects
4313-
with static storage duration\iref{basic.stc.static}, for objects or references
4314-
with thread storage duration\iref{basic.stc.thread}, for objects of
4315-
type \tcode{std::type_info}\iref{expr.typeid}, or for an
4316-
exception object\iref{except.throw}.
4312+
with \link{static storage duration}{basic.stc.static}, for objects or references
4313+
with \link{thread storage duration}{basic.stc.thread}, for objects of
4314+
type \link{\tcode{std::type_info}}{expr.typeid}, or for an
4315+
\link{exception object}{except.throw}.
43174316
\end{note}
43184317

43194318
\rSec4[basic.stc.dynamic.deallocation]{Deallocation functions}
@@ -4777,9 +4776,9 @@
47774776
impose requirements on implementations regarding the representation
47784777
of types.
47794778
There are two kinds of types: fundamental types and compound types.
4780-
Types describe objects\iref{intro.object},
4781-
references\iref{dcl.ref},
4782-
or functions\iref{dcl.fct}.
4779+
Types describe \link{objects}{intro.object},
4780+
\link{references}{dcl.ref},
4781+
or \link{functions}{dcl.fct}.
47834782
\end{note}
47844783

47854784
\pnum
@@ -4953,7 +4952,7 @@
49534952
pointer types, pointer-to-member types\iref{basic.compound},
49544953
\tcode{std::nullptr_t},
49554954
and
4956-
cv-qualified\iref{basic.type.qualifier} versions of these
4955+
\link{cv-qualified}{basic.type.qualifier} versions of these
49574956
types are collectively called
49584957
\defnadjx{scalar}{types}{type}.
49594958
\label{term.trivially.copyable.type}%
@@ -4978,7 +4977,7 @@
49784977
\item a scalar type; or
49794978
\item a reference type; or
49804979
\item an array of literal type; or
4981-
\item a possibly cv-qualified class type\iref{class} that
4980+
\item a possibly cv-qualified \link{class type}{class} that
49824981
has all of the following properties:
49834982
\begin{itemize}
49844983
\item it has a constexpr destructor\iref{dcl.constexpr},
@@ -5012,8 +5011,8 @@
50125011
Two types \cvqual{cv1} \tcode{T1} and \cvqual{cv2} \tcode{T2} are
50135012
\defnadjx{layout-compatible}{types}{type}
50145013
if \tcode{T1} and \tcode{T2} are the same type,
5015-
layout-compatible enumerations\iref{dcl.enum}, or
5016-
layout-compatible standard-layout class types\iref{class.mem}.
5014+
\deflinkx{layout-compatible enumerations}{layout-compatible!enumeration}{dcl.enum}, or
5015+
\deflinkx{layout-compatible standard-layout class types}{layout-compatible!class}{class.mem}.
50175016

50185017
\rSec2[basic.fundamental]{Fundamental types}
50195018

@@ -5461,7 +5460,7 @@
54615460
which identify members of a given
54625461
type within objects of a given class, \ref{dcl.mptr}.
54635462
Pointers to data members and pointers to member functions are collectively
5464-
called \term{pointer-to-member} types.
5463+
called \defn{pointer-to-member} types.
54655464
\end{itemize}
54665465

54675466
\pnum
@@ -5539,7 +5538,7 @@
55395538
have the same value representation and alignment
55405539
requirements\iref{basic.align}.
55415540
\begin{note}
5542-
Pointers to over-aligned types\iref{basic.align} have no special
5541+
Pointers to \deflinkx{over-aligned types}{type!over-aligned}{basic.align} have no special
55435542
representation, but their range of valid values is restricted by the extended
55445543
alignment requirement.
55455544
\end{note}
@@ -5854,8 +5853,8 @@
58545853
\indextext{program execution|(}
58555854

58565855
\pnum
5857-
An instance of each object with automatic storage
5858-
duration\iref{basic.stc.auto} is associated with each entry into its
5856+
An instance of each object with \link{automatic storage
5857+
duration}{basic.stc.auto} is associated with each entry into its
58595858
block. Such an object exists and retains its last-stored value during
58605859
the execution of the block and while the block is suspended (by a call
58615860
of a function, suspension of a coroutine\iref{expr.await}, or receipt of a signal).
@@ -5900,7 +5899,7 @@
59005899
the initialization of the entities captured by copy and
59015900
the constituent expressions of the \grammarterm{initializer} of the \grammarterm{init-capture}{s},
59025901
\item
5903-
if $E$ is a function call\iref{expr.call} or implicitly invokes a function,
5902+
if $E$ is a \link{function call}{expr.call} or implicitly invokes a function,
59045903
the constituent expressions of each default argument\iref{dcl.fct.default}
59055904
used in the call, or
59065905
\item
@@ -5931,7 +5930,7 @@
59315930
A \defn{full-expression} is
59325931
\begin{itemize}
59335932
\item
5934-
an unevaluated operand\iref{expr.context},
5933+
an \deflink{unevaluated operand}{expr.context},
59355934
\item
59365935
a \grammarterm{constant-expression}\iref{expr.const},
59375936
\item

0 commit comments

Comments
 (0)