From aeee54d40d92aa34d9823bf2f6d09d9ef89c3b4e Mon Sep 17 00:00:00 2001 From: Corentin Jabot Date: Wed, 26 Jun 2024 00:32:55 -0500 Subject: [PATCH] get rid of id-expressions --- src/D2841.tex | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/D2841.tex b/src/D2841.tex index ae24ddb..ef66d52 100644 --- a/src/D2841.tex +++ b/src/D2841.tex @@ -1465,13 +1465,13 @@ \subsection{\textcolor{noteclr}{3. Wording for variable-template and concept tem \begin{bnf} \nontermdef{type-tt-parameter}\br template-head type-parameter-key \opt{\terminal{...}} \opt{identifier}\br -template-head type-parameter-key \opt{identifier} \terminal{=} id-expression +template-head type-parameter-key \opt{identifier} \terminal{=} \opt{nested-name-specifier} template-name \end{bnf} \begin{bnf} \nontermdef{variable-tt-parameter}\br template-head \terminal{auto} \opt{\terminal{...}} \opt{identifier}\br - template-head \terminal{auto} \opt{identifier} \terminal{=} id-expression + template-head \terminal{auto} \opt{identifier} \terminal{=} \opt{nested-name-specifier} template-name \end{bnf} \begin{bnf} @@ -1775,8 +1775,8 @@ \subsection{\textcolor{noteclr}{3. Wording for variable-template and concept tem \nontermdef{template-argument}\br constant-expression\br type-id\br - id-expression\br - \added{qualified-concept-name} + \removed{id-expression}\br + \added{\opt{nested-name-specifier} template-name\br} \end{bnf} @@ -1977,9 +1977,9 @@ \subsection{\textcolor{noteclr}{3. Wording for variable-template and concept tem \pnum A \grammarterm{template-argument} for a template -\grammarterm{template-parameter} -shall be the name of a \removed{class} template \removed{or an alias template,} expressed as -\grammarterm{id-expression}. +\changed{\grammarterm{template-parameter}}{template parameter} +shall be the name of a \removed{class} template \removed{or an alias template, expressed as +\grammarterm{id-expression}}. \begin{addedblock} For a \grammarterm{type-tt-parameter}, the name shall denote a class template or alias template. For a \grammarterm{variable-tt-parameter}, the name shall denote a variable template. For a \grammarterm{concept-tt-parameter}, the name shall denote a concept. @@ -2596,16 +2596,17 @@ \subsection{\textcolor{noteclr}{3. Wording for variable-template and concept tem process. If both deductions succeed, the partial ordering selects the more constrained template (if one exists) as determined below. +% +%\pnum -\pnum -To produce the transformed template, for each type, \changed{non-type}{constant}, or template -template parameter (including template parameter packs \iref{temp.variadic} -thereof) synthesize a unique type, value, or class template +To produce the transformed template, for each type, \changed{non-type}{constant}\changed{, or template +template parameter}{type template, variable template, or concept} (including template parameter packs \iref{temp.variadic} +thereof) synthesize a unique type, value, \removed{or} class template \added{, variable template, or concept} respectively and substitute it for each occurrence of that parameter in the function type of the template. - -\ednote{Do we need to change anything here?} % lah: it doesn't seem you want this to be in your final paper. +\added{A synthesized class template or variable template shall not have associated constraints. } +\added{The constraint-expression of a synthesized concept shall be the expression \tcode{true}.} \begin{note} The type replacing the placeholder