|
395 | 395 | \item Otherwise, the set is empty. |
396 | 396 | \end{itemize} |
397 | 397 | \begin{note} |
398 | | -This set is a (possibly-empty) set of \grammarterm{id-expression}{s}, |
| 398 | +This set is a (possibly empty) set of \grammarterm{id-expression}{s}, |
399 | 399 | each of which is either $E$ or a subexpression of $E$. |
400 | 400 | \begin{example} |
401 | 401 | In the following example, the set of potential results of the initializer |
|
455 | 455 | A variable is named by an expression |
456 | 456 | if the expression is an \grammarterm{id-expression} that denotes it. |
457 | 457 | A variable \tcode{x} that is named by a |
458 | | -potentially-evaluated expression $N$ |
| 458 | +potentially evaluated expression $N$ |
459 | 459 | that appears at a point $P$ |
460 | 460 | is \defnx{odr-used}{odr-use} by $N$ unless |
461 | 461 | \begin{itemize} |
|
510 | 510 | \end{example} |
511 | 511 |
|
512 | 512 | \pnum |
513 | | -A structured binding is odr-used if it appears as a potentially-evaluated expression. |
| 513 | +A structured binding is odr-used if it appears as a potentially evaluated expression. |
514 | 514 |
|
515 | 515 | \pnum |
516 | | -\tcode{*\keyword{this}} is odr-used if \keyword{this} appears as a potentially-evaluated expression |
| 516 | +\tcode{*\keyword{this}} is odr-used if \keyword{this} appears as a potentially evaluated expression |
517 | 517 | (including as the result of any implicit transformation to |
518 | 518 | a class member access expression\iref{expr.prim.id.general}). |
519 | 519 |
|
520 | 520 | \pnum |
521 | 521 | A virtual member |
522 | 522 | function is odr-used if it is not pure. |
523 | 523 | A function is odr-used if it is named by |
524 | | -a potentially-evaluated expression or conversion. |
| 524 | +a potentially evaluated expression or conversion. |
525 | 525 | A non-placement allocation or deallocation |
526 | 526 | function for a class is odr-used by the definition of a constructor of that |
527 | 527 | class. A non-placement deallocation function for a class is odr-used by the |
|
537 | 537 |
|
538 | 538 | \pnum |
539 | 539 | An assignment operator function in a class is odr-used by an |
540 | | -implicitly-defined |
| 540 | +implicitly defined |
541 | 541 | copy assignment or move assignment function for another class as specified |
542 | 542 | in~\ref{class.copy.assign}. |
543 | 543 | A constructor for a class is odr-used as specified |
|
778 | 778 | For the purposes of the preceding requirements: |
779 | 779 |
|
780 | 780 | \begin{itemize} |
781 | | -\item If \tcode{D} is a class with an implicitly-declared |
| 781 | +\item If \tcode{D} is a class with an implicitly declared |
782 | 782 | constructor\iref{class.default.ctor,class.copy.ctor}, |
783 | 783 | it is as if the constructor was |
784 | 784 | implicitly defined in every translation unit where it is odr-used, and the |
|
1411 | 1411 | \begin{itemize} |
1412 | 1412 | \item |
1413 | 1413 | If $P$ is associated with a \grammarterm{declarator} and |
1414 | | -is preceded by a (possibly-parenthesized) \grammarterm{noptr-declarator} of |
| 1414 | +is preceded by a (possibly parenthesized) \grammarterm{noptr-declarator} of |
1415 | 1415 | the form |
1416 | 1416 | \grammarterm{declarator-id} \opt{\grammarterm{attribute-specifier-seq}}, |
1417 | 1417 | its scope extends to the end of the nearest enclosing |
|
3395 | 3395 | \defn{most derived object}. |
3396 | 3396 |
|
3397 | 3397 | \pnum |
3398 | | -A \defn{potentially-overlapping subobject} is either: |
| 3398 | +A \defn{potentially overlapping subobject} is either: |
3399 | 3399 | \begin{itemize} |
3400 | 3400 | \item a base class subobject, or |
3401 | 3401 | \item a non-static data member |
|
3407 | 3407 | \indextext{object!nonzero size}% |
3408 | 3408 | An object has nonzero size if it |
3409 | 3409 | \begin{itemize} |
3410 | | -\item is not a potentially-overlapping subobject, or |
| 3410 | +\item is not a potentially overlapping subobject, or |
3411 | 3411 | \item is not of class type, or |
3412 | 3412 | \item is of a class type with virtual member functions or virtual base classes, or |
3413 | 3413 | \item has subobjects of nonzero size or unnamed bit-fields of nonzero length. |
|
3499 | 3499 | Further, after implicitly creating objects within a specified region of storage, |
3500 | 3500 | some operations are described as producing a pointer to a |
3501 | 3501 | \defnadj{suitable created}{object}. |
3502 | | -These operations select one of the implicitly-created objects |
| 3502 | +These operations select one of the implicitly created objects |
3503 | 3503 | whose address is the address of the start of the region of storage, |
3504 | 3504 | and produce a pointer value that points to that object, |
3505 | 3505 | if that value would result in the program having defined behavior. |
|
3839 | 3839 | \item $o_1$ is not a const, complete object, and |
3840 | 3840 |
|
3841 | 3841 | \item neither $o_1$ nor $o_2$ |
3842 | | -is a potentially-overlapping subobject\iref{intro.object}, and |
| 3842 | +is a potentially overlapping subobject\iref{intro.object}, and |
3843 | 3843 |
|
3844 | 3844 | \item either $o_1$ and $o_2$ are both complete objects, or |
3845 | 3845 | $o_1$ and $o_2$ are direct subobjects of objects $p_1$ and $p_2$, respectively, |
|
4530 | 4530 |
|
4531 | 4531 | \pnum |
4532 | 4532 | When an object of class type \tcode{X} |
4533 | | -is passed to or returned from a potentially-evaluated function call, |
| 4533 | +is passed to or returned from a potentially evaluated function call, |
4534 | 4534 | if \tcode{X} is |
4535 | 4535 | \begin{itemize} |
4536 | 4536 | \item |
|
4855 | 4855 | \pnum |
4856 | 4856 | \indextext{object!byte copying and|(}% |
4857 | 4857 | \indextext{type!trivially copyable}% |
4858 | | -For any object (other than a potentially-overlapping subobject) of trivially copyable type |
| 4858 | +For any object (other than a potentially overlapping subobject) of trivially copyable type |
4859 | 4859 | \tcode{T}, whether or not the object holds a valid value of type |
4860 | 4860 | \tcode{T}, the underlying bytes\iref{intro.memory} making up the |
4861 | 4861 | object can be copied into an array of |
|
4882 | 4882 | \pnum |
4883 | 4883 | For two distinct objects \tcode{obj1} and \tcode{obj2} |
4884 | 4884 | of trivially copyable type \tcode{T}, |
4885 | | -where neither \tcode{obj1} nor \tcode{obj2} is a potentially-overlapping subobject, |
| 4885 | +where neither \tcode{obj1} nor \tcode{obj2} is a potentially overlapping subobject, |
4886 | 4886 | if the underlying bytes\iref{intro.memory} making up |
4887 | 4887 | \tcode{obj1} are copied into \tcode{obj2}, |
4888 | 4888 | \begin{footnote} |
|
4939 | 4939 | \end{footnote} |
4940 | 4940 |
|
4941 | 4941 | \pnum |
4942 | | -\indextext{type!incompletely-defined object}% |
| 4942 | +\indextext{type!incompletely defined object}% |
4943 | 4943 | A class that has been declared but not defined, an enumeration type in certain |
4944 | 4944 | contexts\iref{dcl.enum}, or an array of unknown |
4945 | 4945 | bound or of incomplete element type, is an |
4946 | | -\defnadj{incompletely-defined}{object type}. |
| 4946 | +\defnadj{incompletely defined}{object type}. |
4947 | 4947 | \begin{footnote} |
4948 | | -The size and layout of an instance of an incompletely-defined |
| 4948 | +The size and layout of an instance of an incompletely defined |
4949 | 4949 | object type is unknown. |
4950 | 4950 | \end{footnote} |
4951 | 4951 | \label{term.incomplete.type}% |
4952 | | -Incompletely-defined object types and \cv{}~\keyword{void} are |
| 4952 | +Incompletely defined object types and \cv{}~\keyword{void} are |
4953 | 4953 | \defnadjx{incomplete}{types}{type}\iref{basic.fundamental}. |
4954 | 4954 | \begin{note} |
4955 | 4955 | Objects cannot be defined to have an incomplete type\iref{basic.def}. |
|
5681 | 5681 | if there is an object \placeholder{y}, |
5682 | 5682 | pointer-interconvertible with \placeholder{x}, |
5683 | 5683 | such that \placeholder{b} is within the storage occupied by |
5684 | | -\placeholder{y}, or the immediately-enclosing array object |
| 5684 | +\placeholder{y}, or the immediately enclosing array object |
5685 | 5685 | if \placeholder{y} is an array element. |
5686 | 5686 |
|
5687 | 5687 | \pnum |
|
5995 | 5995 | Expressions appearing in the \grammarterm{compound-statement} of a \grammarterm{lambda-expression} |
5996 | 5996 | are not subexpressions of the \grammarterm{lambda-expression}. |
5997 | 5997 | \end{note} |
5998 | | -The \defnadjx{potentially-evaluated}{subexpressions}{subexpression} of |
| 5998 | +The \defnadjx{potentially evaluated}{subexpressions}{subexpression} of |
5999 | 5999 | an expression, conversion, or \grammarterm{initializer} $E$ are |
6000 | 6000 | \begin{itemize} |
6001 | 6001 | \item |
|
7002 | 7002 | \indextext{initialization!order of}% |
7003 | 7003 | Dynamic initialization of a non-block variable with static storage duration is |
7004 | 7004 | unordered if the variable is an implicitly or explicitly instantiated |
7005 | | -specialization, is partially-ordered if the variable |
| 7005 | +specialization, is partially ordered if the variable |
7006 | 7006 | is an inline variable that is not an implicitly or explicitly instantiated |
7007 | 7007 | specialization, and otherwise is ordered. |
7008 | 7008 | \begin{note} |
|
7028 | 7028 | If \tcode{V} and \tcode{W} have ordered initialization and |
7029 | 7029 | the definition of \tcode{V} |
7030 | 7030 | is appearance-ordered before the definition of \tcode{W}, or |
7031 | | -if \tcode{V} has partially-ordered initialization, |
| 7031 | +if \tcode{V} has partially ordered initialization, |
7032 | 7032 | \tcode{W} does not have unordered initialization, and |
7033 | 7033 | for every definition \tcode{E} of \tcode{W} |
7034 | 7034 | there exists a definition \tcode{D} of \tcode{V} |
|
0 commit comments