|
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