Skip to content

Commit a6267a3

Browse files
jensmaurertkoeppe
authored andcommitted
[dcl.typedef] Properly define 'typedef name for linkage purposes'.
1 parent 27c1be4 commit a6267a3

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

source/declarations.tex

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -664,18 +664,19 @@
664664
\indextext{class name!\idxcode{typedef}}%
665665
\indextext{enum name!\idxcode{typedef}}%
666666
\indextext{class!unnamed}%
667-
If the typedef declaration defines an unnamed class or enumeration, the first
668-
\grammarterm{typedef-name} declared by the declaration to be that type
669-
is used to denote the type for linkage purposes only\iref{basic.link}.
667+
An unnamed class or enumeration $C$ defined in a typedef declaration has
668+
the first \grammarterm{typedef-name}
669+
declared by the declaration to be of type $C$
670+
as its \defn{typedef name for linkage purposes}\iref{basic.link}.
670671
\begin{note}
671672
A typedef declaration involving a \grammarterm{lambda-expression}
672673
does not itself define the associated closure type,
673-
and so the closure type is not given a name for linkage purposes.
674+
and so the closure type is not given a typedef name for linkage purposes.
674675
\end{note}
675676
\begin{example}
676677
\begin{codeblock}
677-
typedef struct { } *ps, S; // \tcode{S} is the class name for linkage purposes
678-
typedef decltype([]{}) C; // the closure type has no name for linkage purposes
678+
typedef struct { } *ps, S; // \tcode{S} is the typedef name for linkage purposes
679+
typedef decltype([]{}) C; // the closure type has no typedef name for linkage purposes
679680
\end{codeblock}
680681
\end{example}
681682

0 commit comments

Comments
 (0)