diff --git a/source/basic.tex b/source/basic.tex index 84541437ee..ee55ca2681 100644 --- a/source/basic.tex +++ b/source/basic.tex @@ -108,10 +108,10 @@ declaration specifies the interpretation and semantic properties of these names. A declaration may also have effects including: \begin{itemize} -\item a static assertion\iref{dcl.dcl}, +\item a static assertion\iref{dcl.pre}, \item controlling template instantiation\iref{temp.explicit}, \item guiding template argument deduction for constructors\iref{temp.deduct.guide}, -\item use of attributes\iref{dcl.dcl}, and +\item use of attributes\iref{dcl.attr}, and \item nothing (in the case of an \grammarterm{empty-declaration}). \end{itemize} @@ -172,19 +172,19 @@ \item it is a \grammarterm{deduction-guide}\iref{temp.deduct.guide}, \item it is -a \grammarterm{static_assert-declaration}\iref{dcl.dcl}, +a \grammarterm{static_assert-declaration}\iref{dcl.pre}, \item it is an -\grammarterm{attribute-declaration}\iref{dcl.dcl}, +\grammarterm{attribute-declaration}\iref{dcl.pre}, \item it is an -\grammarterm{empty-declaration}\iref{dcl.dcl}, +\grammarterm{empty-declaration}\iref{dcl.pre}, \item it is a \grammarterm{using-directive}\iref{namespace.udir}, \item it is a \grammarterm{using-enum-declaration}\iref{enum.udecl}, \item it is -a \grammarterm{template-declaration}\iref{temp} +a \grammarterm{template-declaration}\iref{temp.pre} whose \grammarterm{template-head} is not followed by either a \grammarterm{concept-definition} or a \grammarterm{declaration} that defines a function, a class, a variable, or a static data member. @@ -241,7 +241,7 @@ #include struct C { - std::string s; // \tcode{std::string} is the standard library class\iref{strings} + std::string s; // \tcode{std::string} is the standard library class\iref{string.classes} }; int main() { @@ -438,7 +438,7 @@ invoked\iref{class.dtor}. \pnum -A local entity\iref{basic} +A local entity\iref{basic.pre} is \defn{odr-usable} in a declarative region\iref{basic.scope.declarative} if: \begin{itemize} \item either the local entity is not \tcode{*this}, or @@ -792,7 +792,7 @@ \begin{note} A structured binding\iref{dcl.struct.bind}, namespace name\iref{basic.namespace}, or -class template name\iref{temp} +class template name\iref{temp.pre} must be unique in its declarative region. \end{note} \end{itemize} @@ -858,7 +858,7 @@ \pnum The point of declaration for a class or class template first declared by a \grammarterm{class-specifier} is immediately after the \grammarterm{identifier} or -\grammarterm{simple-template-id} (if any) in its \grammarterm{class-head}\iref{class}. +\grammarterm{simple-template-id} (if any) in its \grammarterm{class-head}\iref{class.pre}. The point of declaration for an enumeration is immediately after the \grammarterm{identifier} (if any) in either its \grammarterm{enum-specifier}\iref{dcl.enum} or its first @@ -934,7 +934,7 @@ \pnum The point of declaration for an -injected-class-name\iref{class} is immediately following +injected-class-name\iref{class.pre} is immediately following the opening brace of the class definition. \pnum @@ -1384,7 +1384,7 @@ in the scope where the expression is found. \pnum -The injected-class-name of a class\iref{class} is also +The injected-class-name of a class\iref{class.pre} is also considered to be a member of that class for the purposes of name hiding and lookup. @@ -1729,7 +1729,7 @@ \end{example} \pnum -A name used in the handler for a \grammarterm{function-try-block}\iref{except} +A name used in the handler for a \grammarterm{function-try-block}\iref{except.pre} is looked up as if the name was used in the outermost block of the function definition. In particular, the function parameter names shall not be redeclared in the @@ -2122,7 +2122,7 @@ and the \grammarterm{nested-name-specifier} nominates a class \tcode{C}: \begin{itemize} \item if the name specified after the \grammarterm{nested-name-specifier}, -when looked up in \tcode{C}, is the injected-class-name of \tcode{C}\iref{class}, or +when looked up in \tcode{C}, is the injected-class-name of \tcode{C}\iref{class.pre}, or \item in a \grammarterm{using-declarator} of a \grammarterm{using-declaration}\iref{namespace.udecl} that is a \grammarterm{member-declaration}, @@ -2596,7 +2596,7 @@ \pnum \indextext{program}% -A \defn{program} consists of one or more translation units\iref{lex} +A \defn{program} consists of one or more translation units\iref{lex.separate} linked together. A translation unit consists of a sequence of declarations. @@ -2692,7 +2692,7 @@ \item a variable; or \item a function; or \item \indextext{class!linkage of}% -a named class\iref{class}, or an unnamed class defined in a +a named class\iref{class.pre}, or an unnamed class defined in a typedef declaration in which the class has the typedef name for linkage purposes\iref{dcl.typedef}; or \item \indextext{enumeration!linkage of}% @@ -2795,7 +2795,7 @@ linkage. \pnum -Two names that are the same\iref{basic} and that are declared +Two names that are the same\iref{basic.pre} and that are declared in different scopes shall denote the same variable, function, type, template or namespace if \begin{itemize} @@ -2970,7 +2970,7 @@ \end{note} The properties of an object are determined when the object is created. An object can have a -name\iref{basic}. An object has a storage +name\iref{basic.pre}. An object has a storage duration\iref{basic.stc} which influences its lifetime\iref{basic.life}. An object has a type\iref{basic.types}. diff --git a/source/classes.tex b/source/classes.tex index dd063f3c32..ad521708d5 100644 --- a/source/classes.tex +++ b/source/classes.tex @@ -560,7 +560,7 @@ \end{itemize} \begin{note} A single name can denote several member functions provided their types -are sufficiently different\iref{over}. +are sufficiently different\iref{over.load}. \end{note} \pnum @@ -1234,7 +1234,7 @@ \grammarterm{member-specification} of a class or class template but is not a friend declaration\iref{class.friend}, the \grammarterm{id-expression} is the -injected-class-name\iref{class} of the immediately-enclosing entity or +injected-class-name\iref{class.pre} of the immediately-enclosing entity or \item in a declaration at namespace scope or in a friend declaration, the @@ -2110,7 +2110,7 @@ but is not a friend declaration\iref{class.friend}, the \grammarterm{id-expression} is \tcode{\~}\grammarterm{class-name} and the \grammarterm{class-name} is the -injected-class-name\iref{class} of the immediately-enclosing entity or +injected-class-name\iref{class.pre} of the immediately-enclosing entity or \item in a declaration at namespace scope or in a friend declaration, the @@ -5119,7 +5119,7 @@ \begin{note} A friend declaration may be the \grammarterm{declaration} in a \grammarterm{template-declaration} -(\ref{temp}, \ref{temp.friend}). +(\ref{temp.pre}, \ref{temp.friend}). \end{note} If the type specifier in a \tcode{friend} declaration designates a (possibly @@ -6482,7 +6482,7 @@ the execution of a constructor and destructor for the parameter copy object \item when the \grammarterm{exception-declaration} of an -exception handler\iref{except} declares an object of the same +exception handler\iref{except.pre} declares an object of the same type (except for cv-qualification) as the exception object\iref{except.throw}, the copy operation can be omitted by treating the \grammarterm{exception-declaration} as an alias for the exception diff --git a/source/declarations.tex b/source/declarations.tex index 0e546e7054..61bf32abf3 100644 --- a/source/declarations.tex +++ b/source/declarations.tex @@ -84,7 +84,7 @@ \grammarterm{linkage-specification}{s} are described in~\ref{dcl.link}; \grammarterm{function-definition}{s} are described in~\ref{dcl.fct.def} and \grammarterm{template-declaration}{s} and -\grammarterm{deduction-guide}{s} are described in \ref{temp}; +\grammarterm{deduction-guide}{s} are described in \ref{temp.deduct.guide}; \grammarterm{namespace-definition}{s} are described in~\ref{namespace.def}, \grammarterm{using-declaration}{s} are described in~\ref{namespace.udecl} and \grammarterm{using-directive}{s} are described in~\ref{namespace.udir}. @@ -237,7 +237,7 @@ constructor, destructor, or conversion function. \begin{note} A \grammarterm{nodeclspec-function-declaration} can only be used in a -\grammarterm{template-declaration}\iref{temp}, +\grammarterm{template-declaration}\iref{temp.pre}, \grammarterm{explicit-instantiation}\iref{temp.explicit}, or \grammarterm{explicit-specialization}\iref{temp.expl.spec}. \end{note} @@ -571,7 +571,7 @@ \grammarterm{typedef-name}. A \grammarterm{typedef-name} names the type associated with the \grammarterm{identifier}\iref{dcl.decl} -or \grammarterm{simple-template-id}\iref{temp}; +or \grammarterm{simple-template-id}\iref{temp.pre}; \indextext{declaration!typedef@\tcode{typedef} as type}% \indextext{equivalence!type}% \indextext{synonym!type name as}% @@ -2011,7 +2011,7 @@ \pnum For a \grammarterm{placeholder-type-specifier} with a \grammarterm{type-constraint}, -the immediately-declared constraint\iref{temp} +the immediately-declared constraint\iref{temp.pre} of the \grammarterm{type-constraint} for the type deduced for the placeholder shall be satisfied. @@ -2171,7 +2171,7 @@ \end{note} \pnum -The optional \grammarterm{requires-clause}\iref{temp} in an +The optional \grammarterm{requires-clause}\iref{temp.pre} in an \grammarterm{init-declarator} or \grammarterm{member-declarator} shall be present only if the declarator declares a templated function\iref{dcl.fct}. @@ -7221,7 +7221,7 @@ \pnum A declaration in a namespace \tcode{N} (excluding declarations in nested scopes) whose \grammarterm{declarator-id} is an \grammarterm{unqualified-id}\iref{dcl.meaning}, -whose \grammarterm{class-head-name}\iref{class} or +whose \grammarterm{class-head-name}\iref{class.pre} or \grammarterm{enum-head-name}\iref{dcl.enum} is an \grammarterm{identifier}, or whose \grammarterm{elaborated-type-specifier} is of the form \grammarterm{class-key} \opt{\grammarterm{attribute-specifier-seq}} \grammarterm{identifier}\iref{dcl.type.elab}, or diff --git a/source/exceptions.tex b/source/exceptions.tex index 08f6e46a3d..11a83c3d1d 100644 --- a/source/exceptions.tex +++ b/source/exceptions.tex @@ -58,7 +58,7 @@ \indextext{exception handling!handler}% \indextext{try block|see{exception handling, try block}}% \indextext{handler|see{exception handling, handler}}% -A \grammarterm{try-block} is a \grammarterm{statement}\iref{stmt.stmt}. +A \grammarterm{try-block} is a \grammarterm{statement}\iref{stmt.pre}. \begin{note} Within this Clause ``try block'' is taken to mean both \grammarterm{try-block} and diff --git a/source/expressions.tex b/source/expressions.tex index 3bdd4fb193..647d3eacd6 100644 --- a/source/expressions.tex +++ b/source/expressions.tex @@ -1737,7 +1737,7 @@ \begin{note} The function call operator or operator template may be constrained\iref{temp.constr.decl} by a \grammarterm{type-constraint}\iref{temp.param}, -a \grammarterm{requires-clause}\iref{temp}, +a \grammarterm{requires-clause}\iref{temp.pre}, or a trailing \grammarterm{requires-clause}\iref{dcl.decl}. \begin{example} \begin{codeblock} @@ -2522,7 +2522,7 @@ }; \end{codeblock} A \grammarterm{requires-expression} can also be used in a -\grammarterm{requires-clause}\iref{temp} as a way of writing ad hoc +\grammarterm{requires-clause}\iref{temp.pre} as a way of writing ad hoc constraints on template arguments such as the one below: \begin{codeblock} template @@ -2685,7 +2685,7 @@ into the \grammarterm{return-type-requirement} is performed. \item -The immediately-declared constraint\iref{temp} +The immediately-declared constraint\iref{temp.pre} of the \grammarterm{type-constraint} for \tcode{decltype((E))} shall be satisfied. \begin{example} @@ -2992,7 +2992,7 @@ checked at the point of call in the calling function. If a constructor or destructor for a function parameter throws an exception, the search for a handler starts in the scope of the calling function; in -particular, if the function called has a \grammarterm{function-try-block}\iref{except} +particular, if the function called has a \grammarterm{function-try-block}\iref{except.pre} with a handler that could handle the exception, this handler is not considered. \end{example} @@ -4339,7 +4339,7 @@ \pnum An \grammarterm{await-expression} shall appear only in a potentially-evaluated expression within the \grammarterm{compound-statement} of a -\grammarterm{function-body} outside of a \grammarterm{handler}\iref{except}. +\grammarterm{function-body} outside of a \grammarterm{handler}\iref{except.pre}. In a \grammarterm{declaration-statement} or in the \grammarterm{simple-declaration} (if any) of a \grammarterm{for-init-statement}, an \grammarterm{await-expression} diff --git a/source/lib-intro.tex b/source/lib-intro.tex index b6f72c80a2..5793ad6852 100644 --- a/source/lib-intro.tex +++ b/source/lib-intro.tex @@ -608,7 +608,7 @@ \begin{example} An implementation might express such a condition via the \grammarterm{constant-expression} -in a \grammarterm{static_assert-declaration}\iref{dcl.dcl}. +in a \grammarterm{static_assert-declaration}\iref{dcl.pre}. If the diagnostic is to be emitted only after the function has been selected by overload resolution, an implementation might express such a condition @@ -1550,7 +1550,7 @@ \indextext{source file} \pnum -A translation unit may include library headers in any order\iref{lex}. +A translation unit may include library headers in any order\iref{lex.separate}. \indextext{unit!translation}% Each may be included more than once, with no effect different from being included exactly once, except that the effect of including either diff --git a/source/overloading.tex b/source/overloading.tex index cb574f1d01..e2562413b2 100644 --- a/source/overloading.tex +++ b/source/overloading.tex @@ -3393,9 +3393,9 @@ \terminal{. .* :: ?:} \end{ncsimplebnf} nor can the preprocessing symbols -\tcode{\#} +\tcode{\#}\iref{cpp.stringize} and -\tcode{\#\#}\iref{cpp}. +\tcode{\#\#}\iref{cpp.concat}. \pnum \indextext{call!operator function}% diff --git a/source/statements.tex b/source/statements.tex index 12bd768276..e67bb1cdcb 100644 --- a/source/statements.tex +++ b/source/statements.tex @@ -283,7 +283,7 @@ converted condition is \tcode{false}, the first substatement is a \defn{discarded statement}, otherwise the second substatement, if present, is a discarded statement. During the instantiation of an -enclosing templated entity\iref{temp}, if the condition is +enclosing templated entity\iref{temp.pre}, if the condition is not value-dependent after its instantiation, the discarded substatement (if any) is not instantiated. \begin{note} diff --git a/source/templates.tex b/source/templates.tex index f81f9267fa..46c06b13a1 100644 --- a/source/templates.tex +++ b/source/templates.tex @@ -453,7 +453,7 @@ \pnum A \grammarterm{type-parameter} that starts with a \grammarterm{type-constraint} -introduces the immediately-declared constraint\iref{temp} +introduces the immediately-declared constraint\iref{temp.pre} of the \grammarterm{type-constraint} for the parameter. \begin{example} \begin{codeblock} @@ -765,7 +765,7 @@ if it appears outside of a \grammarterm{template-argument-list} or \grammarterm{decltype-specifier}. In a \grammarterm{qualified-id} of a \grammarterm{declarator-id} or -in a \grammarterm{qualified-id} formed by a \grammarterm{class-head-name}\iref{class} or +in a \grammarterm{qualified-id} formed by a \grammarterm{class-head-name}\iref{class.pre} or \grammarterm{enum-head-name}\iref{dcl.enum}, the keyword \tcode{template} shall not appear at the top level. In a \grammarterm{qualified-id} used as the name in a @@ -1653,7 +1653,7 @@ \rSec2[temp.constr.decl]{Constrained declarations} \pnum -A template declaration\iref{temp} +A template declaration\iref{temp.pre} or templated function declaration\iref{dcl.fct} can be constrained by the use of a \grammarterm{requires-clause}. This allows the specification of constraints for that declaration as @@ -1696,7 +1696,7 @@ \item the \grammarterm{constraint-expression} introduced by a \grammarterm{requires-clause} following -a \grammarterm{template-parameter-list}\iref{temp}, and +a \grammarterm{template-parameter-list}\iref{temp.pre}, and \item the \grammarterm{constraint-expression} introduced by @@ -2080,7 +2080,7 @@ For purposes of name lookup and instantiation, default arguments, \grammarterm{type-constraint}{s}, -\grammarterm{requires-clause}{s}\iref{temp}, +\grammarterm{requires-clause}{s}\iref{temp.pre}, and \grammarterm{noexcept-specifier}{s} of function templates @@ -3119,7 +3119,7 @@ \end{example} \pnum -A class template partial specialization may be constrained\iref{temp}. +A class template partial specialization may be constrained\iref{temp.pre}. \begin{example} \begin{codeblock} template concept C = true; @@ -3944,7 +3944,7 @@ \pnum A \grammarterm{template-declaration} in which the \grammarterm{declaration} is an -\grammarterm{alias-declaration}\iref{dcl.dcl} declares the +\grammarterm{alias-declaration}\iref{dcl.pre} declares the \grammarterm{identifier} to be an \defnadj{alias}{template}. An alias template is a name for a family of types. The name of the alias template is a \grammarterm{template-name}. @@ -4492,7 +4492,7 @@ \pnum Like normal (non-template) classes, class templates have an -injected-class-name\iref{class}. +injected-class-name\iref{class.pre}. The injected-class-name can be used as a \grammarterm{template-name} or a \grammarterm{type-name}. @@ -4836,7 +4836,7 @@ \item in the definition of a class template, a nested class of a class template, a member of a class template, or a member of a nested class of a class template, -the injected-class-name\iref{class} of the class template or nested class, +the injected-class-name\iref{class.pre} of the class template or nested class, \item in the definition of a primary class template or a member of a primary class template, the name of the @@ -5133,7 +5133,7 @@ template arguments is a dependent type or an expression that is type-dependent or value-dependent or is a pack expansion \begin{note} -This includes an injected-class-name\iref{class} of a class template +This includes an injected-class-name\iref{class.pre} of a class template used without a \grammarterm{template-argument-list}. \end{note}% , or diff --git a/source/utilities.tex b/source/utilities.tex index 53a656cc62..a8b19d3d10 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -16931,7 +16931,7 @@ \tcode{template}\br \tcode{struct is_final;} & \tcode{T} is a class type marked with the \grammarterm{class-virt-specifier} - \tcode{final}\iref{class}. + \tcode{final}\iref{class.pre}. \begin{note} A union is a class type that can be marked with \tcode{final}.