Skip to content

Commit

Permalink
get rid of id-expressions
Browse files Browse the repository at this point in the history
  • Loading branch information
cor3ntin committed Jun 26, 2024
1 parent 1d206a0 commit aeee54d
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions src/D2841.tex
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down Expand Up @@ -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}


Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit aeee54d

Please sign in to comment.