|
43 | 43 | \pnum
|
44 | 44 | Clause~\ref{expr} defines the effects of operators when applied to types
|
45 | 45 | for which they have not been overloaded. Operator overloading shall not
|
46 |
| -modify the rules for the \term{built-in operators}, that |
47 |
| -is, for operators applied to types for which they are defined by this |
| 46 | +modify the rules for the \defnx{built-in operators}{operators!built-in}, |
| 47 | +that is, for operators applied to types for which they are defined by this |
48 | 48 | Standard. However, these built-in operators participate in overload
|
49 | 49 | resolution, and as part of that process user-defined conversions will be
|
50 | 50 | considered where necessary to convert the operands to types appropriate
|
|
238 | 238 | and~\ref{expr.ass}.}
|
239 | 239 |
|
240 | 240 | \pnum
|
241 |
| -\indextext{type!cv-combined}% |
242 |
| -The \term{cv-combined type} of two types \tcode{T1} and \tcode{T2} |
| 241 | +The \defnx{cv-combined type}{type!cv-combined} of two types \tcode{T1} and \tcode{T2} |
243 | 242 | is a type \tcode{T3}
|
244 | 243 | similar to \tcode{T1} whose cv-qualification signature~(\ref{conv.qual}) is:
|
245 | 244 | \begin{itemize}
|
|
926 | 925 | a variable with automatic storage duration (this excludes any \grammarterm{id-expression}
|
927 | 926 | that has been found to refer to an \grammarterm{init-capture}{'s} associated
|
928 | 927 | \indextext{implicit capture!definition of}%
|
929 |
| -non-static data member), is said to \term{implicitly capture} the entity (i.e., |
| 928 | +non-static data member), is said to \defnx{implicitly capture}{capture!implicit} |
| 929 | +the entity (i.e., |
930 | 930 | \tcode{this} or a variable) if the \grammarterm{compound-statement}:
|
931 | 931 | \begin{itemize}
|
932 | 932 | \item odr-uses~(\ref{basic.def.odr}) the entity, or
|
|
1021 | 1021 | \exitexample
|
1022 | 1022 |
|
1023 | 1023 | \pnum
|
1024 |
| -An entity is \indexdefn{captured!by copy}\term{captured by copy} if it is implicitly captured and the |
| 1024 | +An entity is \defnx{captured by copy}{captured!by~copy} if it is implicitly captured and the |
1025 | 1025 | \grammarterm{capture-default} is \tcode{=} or if it is explicitly captured with a
|
1026 | 1026 | capture that is not of the form \tcode{\&} \grammarterm{identifier} or
|
1027 | 1027 | \tcode{\&} \grammarterm{identifier} \grammarterm{initializer}.
|
|
1034 | 1034 | A member of an anonymous union shall not be captured by copy.
|
1035 | 1035 |
|
1036 | 1036 | \pnum
|
1037 |
| -An entity is \indexdefn{captured!by reference}\term{captured by reference} if it is implicitly or explicitly |
| 1037 | +An entity is \defnx{captured by reference}{captured!by~reference} if it is implicitly or explicitly |
1038 | 1038 | captured but not captured by copy. It is unspecified whether additional unnamed
|
1039 | 1039 | non-static data members are declared in the closure type for entities captured by
|
1040 | 1040 | reference. A member of an anonymous union shall not be captured by reference.
|
|
1357 | 1357 | member access expression is a \grammarterm{qualified-id}, that function is
|
1358 | 1358 | called. Otherwise, its final overrider~(\ref{class.virtual}) in the dynamic type
|
1359 | 1359 | of the object expression is called; such a call is referred to as a
|
1360 |
| -\term{virtual function call}. |
| 1360 | +\defnx{virtual function call}{function!virtual function~call}. |
1361 | 1361 | \enternote
|
1362 | 1362 | the dynamic type is the type of the object referred to by the
|
1363 | 1363 | current value of the object expression. \ref{class.cdtor}~describes the
|
|
1491 | 1491 | integral or enumeration type that is subject to the integral
|
1492 | 1492 | promotions~(\ref{conv.prom}), or a floating point type that is subject to the floating
|
1493 | 1493 | point promotion~(\ref{conv.fpprom}), the value of the argument is converted to the
|
1494 |
| -promoted type before the call. These promotions are referred to as the \term{default |
1495 |
| -argument promotions}. |
| 1494 | +promoted type before the call. These promotions are referred to as |
| 1495 | +the \defnx{default argument promotions}{promotion!default argument promotion}. |
1496 | 1496 |
|
1497 | 1497 | \pnum
|
1498 | 1498 | \indextext{evaluation!order~of argument}%
|
|
2371 | 2371 | \tcode{reinterpret_cast<T\&\&>(x)}). \exitnote No
|
2372 | 2372 | temporary is created, no copy is made, and
|
2373 | 2373 | constructors~(\ref{class.ctor}) or conversion
|
2374 |
| -functions~(\ref{class.conv}) are not called.\footnote{\indextext{type~pun}This |
2375 |
| -is sometimes referred to as a \term{type pun}.} |
| 2374 | +functions~(\ref{class.conv}) are not called.\footnote{This |
| 2375 | +is sometimes referred to as a \defnx{type pun}{type~pun}.} |
2376 | 2376 |
|
2377 | 2377 | \rSec2[expr.const.cast]{Const cast}
|
2378 | 2378 |
|
|
2538 | 2538 | \pnum
|
2539 | 2539 | \indextext{expression!unary~operator}%
|
2540 | 2540 | \indextext{operator!unary}%
|
2541 |
| -The unary \tcode{*} operator performs \term{indirection}: |
| 2541 | +The unary \tcode{*} operator performs \defn{indirection}: |
2542 | 2542 | \indextext{dereferencing|seealso{indirection}}%
|
2543 |
| -\indextext{indirection}% |
2544 | 2543 | the expression to which it is applied shall be a pointer to an object
|
2545 | 2544 | type, or a pointer to a function type and the result is an lvalue
|
2546 | 2545 | referring to the object or function to which the expression points. If
|
|
2800 | 2799 | \indextext{\idxcode{new}}%
|
2801 | 2800 | The \grammarterm{new-expression} attempts to create an object of the
|
2802 | 2801 | \grammarterm{type-id}~(\ref{dcl.name}) or \grammarterm{new-type-id} to which
|
2803 |
| -it is applied. The type of that object is the \term{allocated type}. |
| 2802 | +it is applied. The type of that object is the \defnx{allocated type}{type!allocated}. |
2804 | 2803 | \indextext{type!incomplete}%
|
2805 | 2804 | This type shall be a complete object type, but not an abstract class
|
2806 | 2805 | type or array
|
|
4651 | 4650 | requirements as detailed in this sub-clause; other contexts have different
|
4652 | 4651 | semantics depending on whether or not an expression satisfies these requirements.
|
4653 | 4652 | Expressions that satisfy these requirements are called
|
4654 |
| -\term{constant expressions}. \enternote Constant expressions can be evaluated |
| 4653 | +\indexdefn{expression!constant}% |
| 4654 | +\defn{constant expression}{s}. \enternote Constant expressions can be evaluated |
4655 | 4655 | during translation.\exitnote
|
4656 | 4656 |
|
4657 | 4657 | \begin{bnf}
|
|
4660 | 4660 | \end{bnf}
|
4661 | 4661 |
|
4662 | 4662 | \pnum
|
4663 |
| -A \grammarterm{conditional-expression} \tcode{e} is a \term{core constant expression} |
| 4663 | +A \grammarterm{conditional-expression} \tcode{e} is a |
| 4664 | +\defnx{core constant expression}{expression!core~constant} |
4664 | 4665 | unless the evaluation of \tcode{e}, following the rules of the abstract
|
4665 | 4666 | machine~(\ref{intro.execution}), would evaluate one of the following expressions:
|
4666 | 4667 |
|
|
4837 | 4838 | \exitexample
|
4838 | 4839 |
|
4839 | 4840 | \pnum
|
4840 |
| -An \term{integral constant expression} is an expression of integral or |
| 4841 | +An \defnx{integral constant expression}{expression!integral~constant} |
| 4842 | +is an expression of integral or |
4841 | 4843 | unscoped enumeration type, implicitly converted to a prvalue, where the converted expression is a core constant expression.
|
4842 | 4844 | \enternote
|
4843 | 4845 | Such expressions may be
|
|
4848 | 4850 | \exitnote
|
4849 | 4851 |
|
4850 | 4852 | \pnum
|
4851 |
| -A \term{converted constant expression} of type \tcode{T} is an |
| 4853 | +A \defnx{converted constant expression}{expression!converted~constant} |
| 4854 | +of type \tcode{T} is an |
4852 | 4855 | expression, implicitly converted to type \tcode{T}, where
|
4853 | 4856 | the converted expression is a constant expression and the
|
4854 | 4857 | implicit conversion sequence contains only
|
|
4876 | 4879 | \exitnote
|
4877 | 4880 |
|
4878 | 4881 | \pnum
|
| 4882 | +\indextext{expression!constant}% |
4879 | 4883 | A \term{constant expression} is either
|
4880 | 4884 | a glvalue core constant expression whose value refers to
|
4881 | 4885 | an entity that is a permitted result of a constant expression (as defined below), or
|
|
4894 | 4898 | the address of a function,
|
4895 | 4899 | or a null pointer value.
|
4896 | 4900 | \end{itemize}
|
4897 |
| -\indextext{constant expression!permitted result of}% |
4898 |
| -An entity is a \term{permitted result of a constant expression} if it is an |
| 4901 | +An entity is a |
| 4902 | +\defnx{permitted result of a constant expression}{constant expression!permitted result~of} |
| 4903 | +if it is an |
4899 | 4904 | object with static storage duration that is either not a temporary object or is
|
4900 | 4905 | a temporary object whose value satisfies the above constraints, or it is a
|
4901 | 4906 | function.
|
|
0 commit comments