|
108 | 108 | declaration specifies the interpretation and semantic properties of these names.
|
109 | 109 | A declaration may also have effects including:
|
110 | 110 | \begin{itemize}
|
111 |
| -\item a static assertion\iref{dcl.dcl}, |
| 111 | +\item a static assertion\iref{dcl.pre}, |
112 | 112 | \item controlling template instantiation\iref{temp.explicit},
|
113 | 113 | \item guiding template argument deduction for constructors\iref{temp.deduct.guide},
|
114 |
| -\item use of attributes\iref{dcl.dcl}, and |
| 114 | +\item use of attributes\iref{dcl.attr}, and |
115 | 115 | \item nothing (in the case of an \grammarterm{empty-declaration}).
|
116 | 116 | \end{itemize}
|
117 | 117 |
|
|
172 | 172 | \item it is
|
173 | 173 | a \grammarterm{deduction-guide}\iref{temp.deduct.guide},
|
174 | 174 | \item it is
|
175 |
| -a \grammarterm{static_assert-declaration}\iref{dcl.dcl}, |
| 175 | +a \grammarterm{static_assert-declaration}\iref{dcl.pre}, |
176 | 176 | \item
|
177 | 177 | it is an
|
178 |
| -\grammarterm{attribute-declaration}\iref{dcl.dcl}, |
| 178 | +\grammarterm{attribute-declaration}\iref{dcl.pre}, |
179 | 179 | \item
|
180 | 180 | it is an
|
181 |
| -\grammarterm{empty-declaration}\iref{dcl.dcl}, |
| 181 | +\grammarterm{empty-declaration}\iref{dcl.pre}, |
182 | 182 | \item it is
|
183 | 183 | a \grammarterm{using-directive}\iref{namespace.udir},
|
184 | 184 | \item it is
|
185 | 185 | a \grammarterm{using-enum-declaration}\iref{enum.udecl},
|
186 | 186 | \item it is
|
187 |
| -a \grammarterm{template-declaration}\iref{temp} |
| 187 | +a \grammarterm{template-declaration}\iref{temp.pre} |
188 | 188 | whose \grammarterm{template-head} is not followed by
|
189 | 189 | either a \grammarterm{concept-definition} or a \grammarterm{declaration}
|
190 | 190 | that defines a function, a class, a variable, or a static data member.
|
|
241 | 241 | #include <string>
|
242 | 242 |
|
243 | 243 | struct C {
|
244 |
| - std::string s; // \tcode{std::string} is the standard library class\iref{strings} |
| 244 | + std::string s; // \tcode{std::string} is the standard library class\iref{string.classes} |
245 | 245 | };
|
246 | 246 |
|
247 | 247 | int main() {
|
|
438 | 438 | invoked\iref{class.dtor}.
|
439 | 439 |
|
440 | 440 | \pnum
|
441 |
| -A local entity\iref{basic} |
| 441 | +A local entity\iref{basic.pre} |
442 | 442 | is \defn{odr-usable} in a declarative region\iref{basic.scope.declarative} if:
|
443 | 443 | \begin{itemize}
|
444 | 444 | \item either the local entity is not \tcode{*this}, or
|
|
792 | 792 | \begin{note}
|
793 | 793 | A structured binding\iref{dcl.struct.bind},
|
794 | 794 | namespace name\iref{basic.namespace}, or
|
795 |
| -class template name\iref{temp} |
| 795 | +class template name\iref{temp.pre} |
796 | 796 | must be unique in its declarative region.
|
797 | 797 | \end{note}
|
798 | 798 | \end{itemize}
|
|
858 | 858 | \pnum
|
859 | 859 | The point of declaration for a class or class template first declared by a
|
860 | 860 | \grammarterm{class-specifier} is immediately after the \grammarterm{identifier} or
|
861 |
| -\grammarterm{simple-template-id} (if any) in its \grammarterm{class-head}\iref{class}. |
| 861 | +\grammarterm{simple-template-id} (if any) in its \grammarterm{class-head}\iref{class.pre}. |
862 | 862 | The point of declaration for an enumeration is
|
863 | 863 | immediately after the \grammarterm{identifier} (if any) in either its
|
864 | 864 | \grammarterm{enum-specifier}\iref{dcl.enum} or its first
|
|
934 | 934 |
|
935 | 935 | \pnum
|
936 | 936 | The point of declaration for an
|
937 |
| -injected-class-name\iref{class} is immediately following |
| 937 | +injected-class-name\iref{class.pre} is immediately following |
938 | 938 | the opening brace of the class definition.
|
939 | 939 |
|
940 | 940 | \pnum
|
|
1384 | 1384 | in the scope where the expression is found.
|
1385 | 1385 |
|
1386 | 1386 | \pnum
|
1387 |
| -The injected-class-name of a class\iref{class} is also |
| 1387 | +The injected-class-name of a class\iref{class.pre} is also |
1388 | 1388 | considered to be a member of that class for the purposes of name hiding
|
1389 | 1389 | and lookup.
|
1390 | 1390 |
|
|
1729 | 1729 | \end{example}
|
1730 | 1730 |
|
1731 | 1731 | \pnum
|
1732 |
| -A name used in the handler for a \grammarterm{function-try-block}\iref{except} |
| 1732 | +A name used in the handler for a \grammarterm{function-try-block}\iref{except.pre} |
1733 | 1733 | is looked up as if the name was used in the
|
1734 | 1734 | outermost block of the function definition. In particular, the function
|
1735 | 1735 | parameter names shall not be redeclared in the
|
|
2122 | 2122 | and the \grammarterm{nested-name-specifier} nominates a class \tcode{C}:
|
2123 | 2123 | \begin{itemize}
|
2124 | 2124 | \item if the name specified after the \grammarterm{nested-name-specifier},
|
2125 |
| -when looked up in \tcode{C}, is the injected-class-name of \tcode{C}\iref{class}, or |
| 2125 | +when looked up in \tcode{C}, is the injected-class-name of \tcode{C}\iref{class.pre}, or |
2126 | 2126 | \item
|
2127 | 2127 | in a \grammarterm{using-declarator} of
|
2128 | 2128 | a \grammarterm{using-declaration}\iref{namespace.udecl} that is a \grammarterm{member-declaration},
|
|
2596 | 2596 |
|
2597 | 2597 | \pnum
|
2598 | 2598 | \indextext{program}%
|
2599 |
| -A \defn{program} consists of one or more translation units\iref{lex} |
| 2599 | +A \defn{program} consists of one or more translation units\iref{lex.separate} |
2600 | 2600 | linked together. A translation unit consists
|
2601 | 2601 | of a sequence of declarations.
|
2602 | 2602 |
|
|
2692 | 2692 | \item a variable; or
|
2693 | 2693 | \item a function; or
|
2694 | 2694 | \item \indextext{class!linkage of}%
|
2695 |
| -a named class\iref{class}, or an unnamed class defined in a |
| 2695 | +a named class\iref{class.pre}, or an unnamed class defined in a |
2696 | 2696 | typedef declaration in which the class has the typedef name for linkage
|
2697 | 2697 | purposes\iref{dcl.typedef}; or
|
2698 | 2698 | \item \indextext{enumeration!linkage of}%
|
|
2795 | 2795 | linkage.
|
2796 | 2796 |
|
2797 | 2797 | \pnum
|
2798 |
| -Two names that are the same\iref{basic} and that are declared |
| 2798 | +Two names that are the same\iref{basic.pre} and that are declared |
2799 | 2799 | in different scopes shall denote the same variable, function,
|
2800 | 2800 | type, template or namespace if
|
2801 | 2801 | \begin{itemize}
|
|
2970 | 2970 | \end{note}
|
2971 | 2971 | The properties of an
|
2972 | 2972 | object are determined when the object is created. An object can have a
|
2973 |
| -name\iref{basic}. An object has a storage |
| 2973 | +name\iref{basic.pre}. An object has a storage |
2974 | 2974 | duration\iref{basic.stc} which influences its
|
2975 | 2975 | lifetime\iref{basic.life}. An object has a
|
2976 | 2976 | type\iref{basic.types}.
|
|
0 commit comments