|
207 | 207 |
|
208 | 208 | \pnum
|
209 | 209 | If the \grammarterm{decl-specifier-seq} contains the \tcode{typedef}
|
210 |
| -specifier, the declaration is called a \term{typedef declaration} and the name |
| 210 | +specifier, the declaration is called a \defnx{typedef declaration}{declaration!typedef} and the name |
211 | 211 | of each \grammarterm{init-declarator}
|
212 | 212 | is declared to be a \grammarterm{typedef-name}, synonymous with its
|
213 | 213 | associated type\iref{dcl.typedef}. If the
|
214 | 214 | \grammarterm{decl-specifier-seq} contains no \tcode{typedef} specifier, the
|
215 |
| -declaration is called a \term{function declaration} if |
| 215 | +declaration is called a \defnx{function declaration}{declaration!function} if |
216 | 216 | the type associated with the name is a function type\iref{dcl.fct} and
|
217 |
| -an \term{object declaration} otherwise. |
| 217 | +an \defnx{object declaration}{declaration!object} otherwise. |
218 | 218 |
|
219 | 219 | \pnum
|
220 | 220 | \indextext{definition!declaration as}%
|
|
978 | 978 | \indextext{inline function}%
|
979 | 979 | A function declaration~(\ref{dcl.fct}, \ref{class.mfct},
|
980 | 980 | \ref{class.friend}) with an \tcode{inline} specifier declares an
|
981 |
| -\term{inline function}. The inline specifier indicates to |
| 981 | +\defnx{inline function}{function!inline}. The inline specifier indicates to |
982 | 982 | the implementation that inline substitution of the function body at the
|
983 | 983 | point of call is to be preferred to the usual function call mechanism.
|
984 | 984 | An implementation is not required to perform this inline substitution at
|
|
988 | 988 |
|
989 | 989 | \pnum
|
990 | 990 | A variable declaration with an \tcode{inline} specifier declares an
|
991 |
| -\term{inline variable}. |
| 991 | +\defnx{inline variable}{variable!inline}. |
992 | 992 |
|
993 | 993 | \pnum
|
994 | 994 | A function defined within a class definition is an inline function.
|
|
1994 | 1994 | \indextext{enumeration}%
|
1995 | 1995 | The enumeration type declared with an \grammarterm{enum-key}
|
1996 | 1996 | of only \tcode{enum} is an \defnx{unscoped enumeration}{enumeration!unscoped},
|
1997 |
| -and its \grammarterm{enumerator}{s} are \term{unscoped enumerators}. |
| 1997 | +and its \grammarterm{enumerator}{s} are \defnx{unscoped enumerators}{enumerator!unscoped}. |
1998 | 1998 | The \grammarterm{enum-key}{s} \tcode{enum class} and
|
1999 | 1999 | \tcode{enum struct} are semantically equivalent; an enumeration
|
2000 | 2000 | type declared with one of these is a \defnx{scoped enumeration}{enumeration!scoped},
|
2001 |
| -and its \grammarterm{enumerator}{s} are \term{scoped enumerators}. |
| 2001 | +and its \grammarterm{enumerator}{s} are \defnx{scoped enumerators}{enumerator!scoped}. |
2002 | 2002 | The optional \grammarterm{identifier} shall not be omitted in the declaration of a scoped enumeration.
|
2003 | 2003 | The \grammarterm{type-specifier-seq} of an \grammarterm{enum-base}
|
2004 | 2004 | shall name an integral type; any cv-qualification is ignored.
|
|
2332 | 2332 | \end{example}
|
2333 | 2333 |
|
2334 | 2334 | \pnum
|
2335 |
| -The \term{enclosing namespaces} of a declaration are those |
| 2335 | +The \defnx{enclosing namespaces}{namespace!enclosing} of a declaration are those |
2336 | 2336 | namespaces in which the declaration lexically appears, except for a
|
2337 | 2337 | redeclaration of a namespace member outside its original namespace
|
2338 | 2338 | (e.g., a definition as specified in~\ref{namespace.memdef}). Such a
|
|
2357 | 2357 | \pnum
|
2358 | 2358 | If the optional initial \tcode{inline} keyword appears in a
|
2359 | 2359 | \grammarterm{namespace-definition} for a particular namespace, that namespace is
|
2360 |
| -declared to be an \term{inline namespace}. The \tcode{inline} keyword may be |
| 2360 | +declared to be an \defnx{inline namespace}{namespace!inline}. The \tcode{inline} keyword may be |
2361 | 2361 | used on a \grammarterm{namespace-definition} that extends a namespace
|
2362 | 2362 | only if it was previously used on the \grammarterm{namespace-definition}
|
2363 | 2363 | that initially declared the \grammarterm{namespace-name} for that namespace.
|
|
2387 | 2387 | These properties are transitive: if a namespace \tcode{N} contains an inline namespace
|
2388 | 2388 | \tcode{M}, which in turn contains an inline namespace \tcode{O}, then the members of
|
2389 | 2389 | \tcode{O} can be used as though they were members of \tcode{M} or \tcode{N}.
|
2390 |
| -The \term{inline namespace set} of \tcode{N} is the transitive closure of all |
| 2390 | +The \defn{inline namespace set} of \tcode{N} is the transitive closure of all |
2391 | 2391 | inline namespaces in \tcode{N}.
|
2392 |
| -The \term{enclosing namespace set} of \tcode{O} is the set of namespaces |
| 2392 | +The \defn{enclosing namespace set} of \tcode{O} is the set of namespaces |
2393 | 2393 | consisting of the innermost non-inline namespace enclosing
|
2394 | 2394 | an inline namespace \tcode{O}, together with any intervening inline namespaces.
|
2395 | 2395 |
|
|
2674 | 2674 | \end{note}
|
2675 | 2675 | \indextext{inheritance!\idxgram{using-declaration} and}%
|
2676 | 2676 | If the \grammarterm{using-declarator} names a constructor,
|
2677 |
| -it declares that the class \term{inherits} the set of constructor declarations |
| 2677 | +it declares that the class \defnx{inherits}{constructor!inherited} the set of constructor declarations |
2678 | 2678 | introduced by the \grammarterm{using-declarator} from the nominated base class.
|
2679 | 2679 |
|
2680 | 2680 | \pnum
|
|
3355 | 3355 |
|
3356 | 3356 | \pnum
|
3357 | 3357 | All function types, function names with external linkage, and variable
|
3358 |
| -names with external linkage have a \term{language linkage}. |
| 3358 | +names with external linkage have a \defn{language linkage}. |
3359 | 3359 | \begin{note}
|
3360 | 3360 | Some of the properties associated with an entity with language linkage
|
3361 | 3361 | are specific to each implementation and are not described here. For
|
|
0 commit comments