Browse files

Use link macros more.

  • Loading branch information...
Eelis committed Aug 11, 2017
1 parent 13182e0 commit d7a6c9f5b1a5e0f4b5010a013558b8758e70ba97
@@ -55,10 +55,10 @@
A \defnadj{local}{entity} is a variable with
automatic storage duration\iref{},
a structured binding\iref{dcl.struct.bind}
\link{automatic storage duration}{\ref{}},
a \link{structured binding}{\ref{dcl.struct.bind}}
whose corresponding variable is such an entity,
or the \tcode{*this} object\iref{expr.prim.this}.
or the \link{\tcode{*this} object}{\ref{expr.prim.this}}.
Some names denote types or templates. In general,
@@ -2505,9 +2505,9 @@
\indextext{memory model|(}%
The fundamental storage unit in the \Cpp{} memory model is the
A byte is at least large enough to contain any member of the basic
A byte is at least large enough to contain any member of the
\indextext{character set!basic execution}%
execution character set\iref{lex.charset}
\deflinkx{basic execution character set}{character set!basic execution}{\ref{lex.charset}}
and the eight-bit code units of the Unicode UTF-8 encoding form
and is composed of a contiguous sequence of
bits,\footnote{The number of bits in a byte is reported by the macro
@@ -2527,8 +2527,8 @@
sequence of adjacent bit-fields all having nonzero width. \begin{note} Various
features of the language, such as references and virtual functions, might
involve additional memory locations that are not accessible to programs but are
managed by the implementation. \end{note} Two or more threads of
execution\iref{intro.multithread} can access separate memory
managed by the implementation. \end{note} Two or more \deflinkx{threads of
execution}{thread of execution}{\ref{intro.multithread}} can access separate memory
locations without interfering with each other.
@@ -2992,9 +2992,9 @@
If a program ends the lifetime of an object of type \tcode{T} with
static\iref{}, thread\iref{},
or automatic\iref{}
storage duration and if \tcode{T} has a non-trivial destructor,\footnote{That
\link{static}{\ref{}}, \link{thread}{\ref{}},
or \link{automatic storage duration}{\ref{}}
and if \tcode{T} has a non-trivial destructor,\footnote{That
is, an object for which a destructor will be called
implicitly---upon exit from the block for an object with
automatic storage duration, upon exit from the thread for an object with
@@ -3479,7 +3479,7 @@
integer value representing the number of bytes between successive addresses
at which a given object can be allocated. An object type imposes an alignment
requirement on every object of that type; stricter alignment can be requested
using the alignment specifier\iref{dcl.align}.
using the \link{alignment specifier}{\ref{dcl.align}}.
@@ -3533,8 +3533,8 @@
The alignment requirement of a complete type can be queried using an
\tcode{alignof} expression\iref{expr.alignof}. Furthermore,
the narrow character types\iref{basic.fundamental} shall have the weakest
\link{\tcode{alignof} expression}{\ref{expr.alignof}}. Furthermore,
the \deflinkx{narrow character types}{type!narrow character}{\ref{basic.fundamental}} shall have the weakest
alignment requirement.
\begin{note} This enables the narrow character types to be used as the
underlying type for an aligned memory area\iref{dcl.align}.\end{note}
@@ -4278,7 +4278,7 @@
neither \tcode{true} nor \tcode{false}.}
\begin{note} There are no \tcode{signed}, \tcode{unsigned}, \tcode{short},
or \tcode{long bool} types or values. \end{note} Values of type
\tcode{bool} participate in integral promotions\iref{conv.prom}.
\tcode{bool} participate in \deflink{integral promotions}{\ref{conv.prom}}.
Types \tcode{bool}, \tcode{char}, \tcode{char16_t}, \tcode{char32_t},
@@ -4339,17 +4339,17 @@
type for functions that do not return a value. Any expression can be
explicitly converted to type \cv{}~\tcode{void}\iref{expr.cast}.
An expression of type \cv{}~\tcode{void} shall
be used only as an expression statement\iref{stmt.expr}, as an operand
of a comma expression\iref{expr.comma}, as a second or third operand
be used only as an \link{expression statement}{\ref{stmt.expr}}, as an operand
of a \link{comma expression}{\ref{expr.comma}}, as a second or third operand
of \tcode{?:}\iref{expr.cond}, as the operand of
\tcode{typeid}, \tcode{noexcept}, or \tcode{decltype}, as
the expression in a \tcode{return} statement\iref{stmt.return} for a function
the expression in a \link{\tcode{return} statement}{\ref{stmt.return}} for a function
with the return type \cv{}~\tcode{void}, or as the operand of an explicit conversion
to type \cv{}~\tcode{void}.
A value of type \tcode{std::nullptr_t} is a null pointer
constant\iref{conv.ptr}. Such values participate in the pointer and the
A value of type \tcode{std::nullptr_t} is a \deflink{null pointer
constant}{\ref{conv.ptr}}. Such values participate in the pointer and the
pointer-to-member conversions~(\ref{conv.ptr}, \ref{conv.mem}).
\tcode{sizeof(std::nullptr_t)} shall be equal to \tcode{sizeof(void*)}.
@@ -4478,7 +4478,7 @@
layout-compatible types shall
have the same value representation and alignment
\begin{note} Pointers to over-aligned types\iref{basic.align} have no special
\begin{note} Pointers to \deflinkx{over-aligned types}{type!over-aligned}{\ref{basic.align}} have no special
representation, but their range of valid values is restricted by the extended
alignment requirement.\end{note}
@@ -4504,7 +4504,7 @@
then they have the same address,
and it is possible to obtain a pointer to one
from a pointer to the other
via a \tcode{reinterpret_cast}\iref{expr.reinterpret.cast}.
via a \link{\tcode{reinterpret_cast}}{\ref{expr.reinterpret.cast}}.
An array object and its first element are not pointer-interconvertible,
even though they have the same address.
@@ -4679,18 +4679,18 @@
The integer conversion rank is used in the definition of the integral
promotions\iref{conv.prom} and the usual arithmetic
The integer conversion rank is used in the definition of the \deflink{integral
promotions}{\ref{conv.prom}} and the usual arithmetic
conversions\iref{expr.prop}. % todo: badref?
\rSec1[basic.exec]{Program execution}
\rSec2[intro.execution]{Sequential execution}
An instance of each object with automatic storage
duration\iref{} is associated with each entry into its
An instance of each object with \link{automatic storage
duration}{\ref{}} is associated with each entry into its
block. Such an object exists and retains its last-stored value during
the execution of the block and while the block is suspended (by a call
of a function or receipt of a signal).
@@ -4731,7 +4731,7 @@
the initialization of the entities captured by copy and
the constituent expressions of the \grammarterm{initializer} of the \grammarterm{init-capture}{s},
if \tcode{e} is a function call\iref{} or implicitly invokes a function,
if \tcode{e} is a \link{function call}{\ref{}} or implicitly invokes a function,
the constituent expressions of each default argument\iref{dcl.fct.default}
used in the call, or
@@ -4753,7 +4753,7 @@
A \defn{full-expression} is
an unevaluated operand\iref{expr.prop},
an \deflink{unevaluated operand}{\ref{expr.prop}},
a \grammarterm{constant-expression}\iref{expr.const},
@@ -541,7 +541,7 @@
(a \defn{non-static data member} or
\defn{non-static member function}~(\ref{class.mfct.non-static}), respectively).
\begin{note} A non-static data member of non-reference
type is a member subobject of a class object\iref{intro.object}.\end{note}
type is a \deflink{member subobject}{\ref{intro.object}} of a class object.\end{note}
A member shall not be declared twice in the
@@ -6508,7 +6508,7 @@
In a \grammarterm{named-namespace-definition},
the \grammarterm{identifier} is the name of the namespace.
If the \grammarterm{identifier}, when looked up\iref{basic.lookup.unqual},
If the \grammarterm{identifier}, when \link{looked up}{\ref{basic.lookup.unqual}},
refers to a \grammarterm{namespace-name} (but not a \grammarterm{namespace-alias})
that was introduced in the namespace
in which the \grammarterm{named-namespace-definition} appears
@@ -6734,8 +6734,8 @@
class, function, class template or function template\footnote{this implies that the name of the class or function is unqualified.}
the friend is a member of the innermost enclosing
namespace. The friend declaration does not by itself make the name
visible to unqualified lookup\iref{basic.lookup.unqual} or qualified
lookup\iref{basic.lookup.qual}. \begin{note} The name of the friend will be
visible to \link{unqualified lookup}{\ref{basic.lookup.unqual}} or \link{qualified
lookup}{\ref{basic.lookup.qual}}. \begin{note} The name of the friend will be
visible in its namespace if a matching declaration is provided at namespace
scope (either before or after the class definition granting friendship).
\end{note} If a friend
@@ -7980,7 +7980,7 @@
\grammarterm{class-head}\iref{class}, respectively) and to the
declaration or definition of an enumeration (in an
\grammarterm{opaque-enum-declaration} or \grammarterm{enum-head},
An \grammarterm{alignment-specifier} with an ellipsis is a \deflink{pack expansion}{\ref{temp.variadic}}.
@@ -7998,7 +7998,7 @@
An \grammarterm{alignment-specifier} of the form
\tcode{alignas(} \grammarterm{type-id} \tcode{)} has the same
effect as \tcode{alignas(\brk{}alignof(} \grammarterm{type-id}~\tcode{))}\iref{expr.alignof}.
effect as \tcode{alignas(\brk{}\link{alignof}{expr.alignof}(} \grammarterm{type-id}~\tcode{))}.
The alignment requirement of an entity is the strictest nonzero alignment
@@ -8779,7 +8779,7 @@
calls a function previously declared \tcode{nodiscard}, or
whose return type is a possibly cv-qualified class or enumeration type
marked \tcode{nodiscard}. Appearance of a nodiscard call as
a potentially-evaluated discarded-value expression\iref{expr.prop}
a potentially-evaluated \deflink{discarded-value expression}{\ref{expr.prop}}
is discouraged unless explicitly cast to \tcode{void}.
Implementations should issue a warning in such cases.
This is typically because discarding the return value
Oops, something went wrong.

0 comments on commit d7a6c9f

Please sign in to comment.