|
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