|
2664 | 2664 |
|
2665 | 2665 | \pnum |
2666 | 2666 | \indextext{translation unit}% |
2667 | | -A name is said to have \defn{linkage} when it can denote the same |
2668 | | -object, reference, function, type, template, namespace or value as a |
2669 | | -name introduced by a declaration in another scope: |
2670 | | -\begin{itemize} |
2671 | | -\item When a name has \defnadj{external}{linkage}, |
2672 | | -the entity it denotes |
2673 | | -can be referred to by names from scopes of other translation units or |
2674 | | -from other scopes of the same translation unit. |
2675 | | - |
2676 | | -\item When a name has \defnx{module linkage}{linkage!module}, |
2677 | | -the entity it denotes |
2678 | | -can be referred to by names from other scopes of the same module unit\iref{module.unit} or |
2679 | | -from scopes of other module units of that same module. |
2680 | | - |
2681 | | -\item When a name has \defnadj{internal}{linkage}, |
2682 | | -the entity it denotes |
2683 | | -can be referred to by names from other scopes in the same translation |
2684 | | -unit. |
2685 | | - |
2686 | | -\item When a name has \indextext{linkage!no}\defn{no linkage}, the entity it denotes |
2687 | | -cannot be referred to by names from other scopes. |
2688 | | -\end{itemize} |
| 2667 | +A name can have |
| 2668 | +\defnadj{external}{linkage}, |
| 2669 | +\defnadj{module}{linkage}, |
| 2670 | +\defnadj{internal}{linkage}, or |
| 2671 | +\defnadj{no}{linkage}, |
| 2672 | +as determined by the rules below. |
| 2673 | +\begin{note} |
| 2674 | +All declarations of an entity with a name with internal linkage |
| 2675 | +appear in the same translation unit. |
| 2676 | +All declarations of an entity with module linkage |
| 2677 | +are attached to the same module. |
| 2678 | +\end{note} |
2689 | 2679 |
|
2690 | 2680 | \pnum |
2691 | 2681 | \indextext{linkage!\idxcode{static} and}% |
|
0 commit comments