|
577 | 577 | is reachable at a point where a later definition appears.
|
578 | 578 | Given such
|
579 | 579 | an entity named \tcode{D} defined in more than one translation unit,
|
580 |
| -then |
| 580 | +all of the following requirements shall be satisfied. |
581 | 581 | \begin{itemize}
|
582 |
| -\item each definition of \tcode{D} shall consist of |
| 582 | +\item Each definition of \tcode{D} shall consist of |
583 | 583 | the same sequence of tokens,
|
584 | 584 | where the definition of a closure type
|
585 | 585 | is considered to consist of the sequence of tokens of
|
586 |
| -the corresponding \grammarterm{lambda-expression}; and |
587 |
| -\item in each definition of \tcode{D}, corresponding names, looked up |
| 586 | +the corresponding \grammarterm{lambda-expression}. |
| 587 | +\item In each definition of \tcode{D}, corresponding names, looked up |
588 | 588 | according to~\ref{basic.lookup}, shall refer to the same entity, after
|
589 | 589 | overload resolution\iref{over.match} and after matching of partial
|
590 | 590 | template specialization\iref{temp.over}, except that a name can refer to
|
|
601 | 601 | \item
|
602 | 602 | a reference with internal or no linkage
|
603 | 603 | initialized with a constant expression such that
|
604 |
| -the reference refers to the same entity in all definitions of \tcode{D}; |
| 604 | +the reference refers to the same entity in all definitions of \tcode{D}. |
605 | 605 | \end{itemize}
|
606 |
| -and |
607 | 606 |
|
608 |
| -\item in each definition of \tcode{D}, except within |
| 607 | +\item In each definition of \tcode{D}, except within |
609 | 608 | the default arguments and default template arguments of \tcode{D},
|
610 | 609 | corresponding \grammarterm{lambda-expression}{s} shall have
|
611 |
| -the same closure type (see below); and |
| 610 | +the same closure type (see below). |
612 | 611 |
|
613 |
| -\item in each definition of \tcode{D}, corresponding entities shall have the |
614 |
| -same language linkage; and |
| 612 | +\item In each definition of \tcode{D}, corresponding entities shall have the |
| 613 | +same language linkage. |
615 | 614 |
|
616 |
| -\item in each definition of \tcode{D}, the overloaded operators referred |
| 615 | +\item In each definition of \tcode{D}, the overloaded operators referred |
617 | 616 | to, the implicit calls to conversion functions, constructors, operator
|
618 | 617 | new functions and operator delete functions, shall refer to the same
|
619 |
| -function; and |
| 618 | +function. |
620 | 619 |
|
621 |
| -\item in each definition of \tcode{D}, |
| 620 | +\item In each definition of \tcode{D}, |
622 | 621 | a default argument used by an (implicit or explicit) function call or
|
623 | 622 | a default template argument used by an (implicit or explicit)
|
624 | 623 | \grammarterm{template-id} or \grammarterm{simple-template-id}
|
625 | 624 | is treated as if its token sequence
|
626 | 625 | were present in the definition of \tcode{D};
|
627 | 626 | that is, the default argument or default template argument
|
628 |
| -is subject to the requirements described in this paragraph (recursively); and |
| 627 | +is subject to the requirements described in this paragraph (recursively). |
629 | 628 |
|
630 |
| -\item if \tcode{D} is a class with an implicitly-declared |
| 629 | +\item If \tcode{D} is a class with an implicitly-declared |
631 | 630 | constructor (\ref{class.default.ctor}, \ref{class.copy.ctor}),
|
632 | 631 | it is as if the constructor was
|
633 | 632 | implicitly defined in every translation unit where it is odr-used, and the
|
|
660 | 659 | \end{codeblock}
|
661 | 660 | \end{example}
|
662 | 661 |
|
663 |
| -\item if \tcode{D} is a class with |
| 662 | +\item If \tcode{D} is a class with |
664 | 663 | a defaulted three-way comparison operator function\iref{class.spaceship},
|
665 | 664 | it is as if the operator was
|
666 | 665 | implicitly defined in every translation unit where it is odr-used, and the
|
|
0 commit comments