|
121 | 121 | \item
|
122 | 122 | \indextext{declaration!static member@\tcode{static} member}%
|
123 | 123 | it declares a non-inline static data member in a class
|
124 |
| -definition (\ref{class.mem},~\ref{class.static}), |
| 124 | +definition~(\ref{class.mem}, \ref{class.static}), |
125 | 125 | \item
|
126 | 126 | it declares a static data member outside a class definition
|
127 | 127 | and the variable was defined within the class with the \tcode{constexpr}
|
|
314 | 314 | \pnum
|
315 | 315 | A variable \tcode{x} whose name appears as a
|
316 | 316 | potentially-evaluated expression \tcode{ex} is \defn{odr-used} by \tcode{ex} unless
|
317 |
| -applying the lvalue-to-rvalue conversion (\ref{conv.lval}) to \tcode{x} yields |
| 317 | +applying the lvalue-to-rvalue conversion~(\ref{conv.lval}) to \tcode{x} yields |
318 | 318 | a constant expression~(\ref{expr.const}) that does not invoke any non-trivial
|
319 | 319 | functions
|
320 | 320 | and, if \tcode{x} is an object, \tcode{ex} is an element of
|
|
1091 | 1091 | \pnum
|
1092 | 1092 | The name lookup rules apply uniformly to all names (including
|
1093 | 1093 | \grammarterm{typedef-name}{s}~(\ref{dcl.typedef}),
|
1094 |
| -\grammarterm{namespace-name}{s} (\ref{basic.namespace}), and |
| 1094 | +\grammarterm{namespace-name}{s}~(\ref{basic.namespace}), and |
1095 | 1095 | \grammarterm{class-name}{s}~(\ref{class.name})) wherever the grammar allows
|
1096 | 1096 | such names in the context discussed by a particular rule. Name lookup
|
1097 | 1097 | associates the use of a name with a set of declarations~(\ref{basic.def}) of
|
|
2508 | 2508 | \indextext{termination!program}%
|
2509 | 2509 | Terminating the program
|
2510 | 2510 | without leaving the current block (e.g., by calling the function
|
2511 |
| -\tcode{std::exit(int)} (\ref{support.start.term})) does not destroy any |
| 2511 | +\tcode{std::exit(int)}~(\ref{support.start.term})) does not destroy any |
2512 | 2512 | objects with automatic storage duration~(\ref{class.dtor}). If
|
2513 | 2513 | \tcode{std::exit} is called to end a program during the destruction of
|
2514 | 2514 | an object with static or thread storage duration, the program has undefined
|
|
2673 | 2673 | \footnote{A non-local variable with static storage duration
|
2674 | 2674 | having initialization
|
2675 | 2675 | with side effects is initialized in this case,
|
2676 |
| -even if it is not itself odr-used (\ref{basic.def.odr},~\ref{basic.stc.static}).} |
| 2676 | +even if it is not itself odr-used~(\ref{basic.def.odr}, \ref{basic.stc.static}).} |
2677 | 2677 | It is \impldef{threads and program points at which deferred dynamic initialization is performed}
|
2678 | 2678 | in which threads and at which points in the program such deferred dynamic initialization occurs.
|
2679 | 2679 | \begin{note}
|
|
2804 | 2804 | \indexlibrary{\idxcode{atexit}}%
|
2805 | 2805 | If the completion of the initialization of an object with static storage
|
2806 | 2806 | duration strongly happens before a call to \tcode{std::atexit}~(see
|
2807 |
| -\tcode{<cstdlib>},~\ref{support.start.term}), the call to the function passed to |
| 2807 | +\tcode{<cstdlib>}, \ref{support.start.term}), the call to the function passed to |
2808 | 2808 | \tcode{std::atexit} is sequenced before the call to the destructor for the object. If a
|
2809 | 2809 | call to \tcode{std::atexit} strongly happens before the completion of the initialization of
|
2810 | 2810 | an object with static storage duration, the call to the destructor for the
|
|
3117 | 3117 | \footnote{The global \tcode{operator delete(void*, std::size_t)}
|
3118 | 3118 | precludes use of an
|
3119 | 3119 | allocation function \tcode{void operator new(std::size_t, std::size_t)} as a placement
|
3120 |
| -allocation function (\ref{diff.cpp11.basic}).}; or |
| 3120 | +allocation function~(\ref{diff.cpp11.basic}).}; or |
3121 | 3121 | \item
|
3122 | 3122 | exactly three parameters,
|
3123 | 3123 | the type of the second being \tcode{std::size_t}
|
|
3182 | 3182 | value;
|
3183 | 3183 |
|
3184 | 3184 | \item the result of a well-defined pointer
|
3185 |
| -conversion~(\ref{conv.ptr},~\ref{expr.cast}) of a safely-derived pointer value; |
| 3185 | +conversion~(\ref{conv.ptr}, \ref{expr.cast}) of a safely-derived pointer value; |
3186 | 3186 |
|
3187 | 3187 | \item the result of a \tcode{reinterpret_cast} of a safely-derived pointer value;
|
3188 | 3188 |
|
|
3511 | 3511 | impose requirements on implementations regarding the representation
|
3512 | 3512 | of types.
|
3513 | 3513 | There are two kinds of types: fundamental types and compound types.
|
3514 |
| -Types describe objects (\ref{intro.object}), |
3515 |
| -references (\ref{dcl.ref}), |
3516 |
| -or functions (\ref{dcl.fct}). |
| 3514 | +Types describe objects~(\ref{intro.object}), |
| 3515 | +references~(\ref{dcl.ref}), |
| 3516 | +or functions~(\ref{dcl.fct}). |
3517 | 3517 | \end{note}
|
3518 | 3518 |
|
3519 | 3519 | \pnum
|
|
3952 | 3952 | \indextext{type!compound}%
|
3953 | 3953 | Compound types can be constructed in the following ways:
|
3954 | 3954 | \begin{itemize}
|
3955 |
| -\item \defnx{arrays}{type!array} of objects of a given type,~\ref{dcl.array}; |
| 3955 | +\item \defnx{arrays}{type!array} of objects of a given type, \ref{dcl.array}; |
3956 | 3956 |
|
3957 | 3957 | \item \defnx{functions}{type!function}, which have parameters of given types and return
|
3958 |
| -\tcode{void} or references or objects of a given type,~\ref{dcl.fct}; |
| 3958 | +\tcode{void} or references or objects of a given type, \ref{dcl.fct}; |
3959 | 3959 |
|
3960 | 3960 | \item \defnx{pointers}{type!pointer} to \cv{}~\tcode{void} or objects or functions (including
|
3961 |
| -static members of classes) of a given type,~\ref{dcl.ptr}; |
| 3961 | +static members of classes) of a given type, \ref{dcl.ptr}; |
3962 | 3962 |
|
3963 | 3963 | \item %
|
3964 | 3964 | \indextext{reference!lvalue}%
|
3965 | 3965 | \indextext{reference!rvalue}%
|
3966 | 3966 | \defnx{references}{reference} to objects or functions of a given
|
3967 |
| -type,~\ref{dcl.ref}. There are two types of references: |
| 3967 | +type, \ref{dcl.ref}. There are two types of references: |
3968 | 3968 | \begin{itemize}
|
3969 | 3969 | \item \defn{lvalue reference}
|
3970 | 3970 | \item \defn{rvalue reference}
|
|
3978 | 3978 |
|
3979 | 3979 | \item
|
3980 | 3980 | \defnx{unions}{\idxcode{union}}, which are classes capable of containing objects of
|
3981 |
| -different types at different times,~\ref{class.union}; |
| 3981 | +different types at different times, \ref{class.union}; |
3982 | 3982 |
|
3983 | 3983 | \item
|
3984 | 3984 | \defnx{enumerations}{\idxcode{enum}}, which comprise a set of named constant values.
|
3985 | 3985 | Each distinct enumeration constitutes a different
|
3986 |
| -\defnx{enumerated type}{type!enumerated},~\ref{dcl.enum}; |
| 3986 | +\defnx{enumerated type}{type!enumerated}, \ref{dcl.enum}; |
3987 | 3987 |
|
3988 | 3988 | \item \indextext{member pointer to|see{pointer to member}}%
|
3989 | 3989 | \defnx{pointers to non-static class members}{pointer to member},%
|
3990 | 3990 | \footnote{Static class members are objects or functions, and pointers to them are
|
3991 | 3991 | ordinary pointers to objects or functions.}
|
3992 | 3992 | which identify members of a given
|
3993 |
| -type within objects of a given class,~\ref{dcl.mptr}. |
| 3993 | +type within objects of a given class, \ref{dcl.mptr}. |
3994 | 3994 | \end{itemize}
|
3995 | 3995 |
|
3996 | 3996 | \pnum
|
|
4021 | 4021 | \item
|
4022 | 4022 | a \defn{pointer to} an object or function (the pointer is said to \defn{point} to the object or function), or
|
4023 | 4023 | \item
|
4024 |
| -a \defn{pointer past the end of} an object (\ref{expr.add}), or |
| 4024 | +a \defn{pointer past the end of} an object~(\ref{expr.add}), or |
4025 | 4025 | \item
|
4026 |
| -the \defn{null pointer value} (\ref{conv.ptr}) for that type, or |
| 4026 | +the \defn{null pointer value}~(\ref{conv.ptr}) for that type, or |
4027 | 4027 | \item
|
4028 | 4028 | an \defn{invalid pointer value}.
|
4029 | 4029 | \end{itemize}
|
|
4343 | 4343 | \rSec1[basic.align]{Alignment}
|
4344 | 4344 |
|
4345 | 4345 | \pnum
|
4346 |
| -Object types have \defnx{alignment requirements}{alignment requirement!implementation-defined} (\ref{basic.fundamental},~\ref{basic.compound}) |
| 4346 | +Object types have \defnx{alignment requirements}{alignment requirement!implementation-defined}~(\ref{basic.fundamental}, \ref{basic.compound}) |
4347 | 4347 | which place restrictions on the addresses at which an object of that type
|
4348 | 4348 | may be allocated. An \defn{alignment} is an \impldef{alignment}
|
4349 | 4349 | integer value representing the number of bytes between successive addresses
|
|
0 commit comments