From Jason Turner

[gram.temp]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpp17cmuau/{from.md → to.md} +32 -5
tmp/tmpp17cmuau/{from.md → to.md} RENAMED
@@ -36,20 +36,21 @@ constraint-logical-and-expression:
36
 
37
  ``` bnf
38
  template-parameter:
39
  type-parameter
40
  parameter-declaration
 
 
 
41
  ```
42
 
43
  ``` bnf
44
  type-parameter:
45
  type-parameter-key '...'ₒₚₜ identifierₒₚₜ
46
  type-parameter-key identifierₒₚₜ '=' type-id
47
  type-constraint '...'ₒₚₜ identifierₒₚₜ
48
  type-constraint identifierₒₚₜ '=' type-id
49
- template-head type-parameter-key '...'ₒₚₜ identifierₒₚₜ
50
- template-head type-parameter-key identifierₒₚₜ '=' id-expression
51
  ```
52
 
53
  ``` bnf
54
  type-parameter-key:
55
  class
@@ -60,10 +61,34 @@ type-parameter-key:
60
  type-constraint:
61
  nested-name-specifierₒₚₜ concept-name
62
  nested-name-specifierₒₚₜ concept-name '<' template-argument-listₒₚₜ '>'
63
  ```
64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  ``` bnf
66
  simple-template-id:
67
  template-name '<' template-argument-listₒₚₜ '>'
68
  ```
69
 
@@ -87,21 +112,23 @@ template-argument-list:
87
 
88
  ``` bnf
89
  template-argument:
90
  constant-expression
91
  type-id
92
- id-expression
 
 
93
  ```
94
 
95
  ``` bnf
96
  constraint-expression:
97
  logical-or-expression
98
  ```
99
 
100
  ``` bnf
101
  deduction-guide:
102
- explicit-specifierₒₚₜ template-name '(' parameter-declaration-clause ')' '->' simple-template-id ';'
103
  ```
104
 
105
  ``` bnf
106
  concept-definition:
107
  concept concept-name attribute-specifier-seqₒₚₜ '=' constraint-expression ';'
@@ -113,11 +140,11 @@ concept-name:
113
  ```
114
 
115
  ``` bnf
116
  typename-specifier:
117
  typename nested-name-specifier identifier
118
- typename nested-name-specifier 'templateₒₚₜ ' simple-template-id
119
  ```
120
 
121
  ``` bnf
122
  explicit-instantiation:
123
  externₒₚₜ template declaration
 
36
 
37
  ``` bnf
38
  template-parameter:
39
  type-parameter
40
  parameter-declaration
41
+ type-tt-parameter
42
+ variable-tt-parameter
43
+ concept-tt-parameter
44
  ```
45
 
46
  ``` bnf
47
  type-parameter:
48
  type-parameter-key '...'ₒₚₜ identifierₒₚₜ
49
  type-parameter-key identifierₒₚₜ '=' type-id
50
  type-constraint '...'ₒₚₜ identifierₒₚₜ
51
  type-constraint identifierₒₚₜ '=' type-id
 
 
52
  ```
53
 
54
  ``` bnf
55
  type-parameter-key:
56
  class
 
61
  type-constraint:
62
  nested-name-specifierₒₚₜ concept-name
63
  nested-name-specifierₒₚₜ concept-name '<' template-argument-listₒₚₜ '>'
64
  ```
65
 
66
+ ``` bnf
67
+ type-tt-parameter:
68
+ template-head type-parameter-key '...'ₒₚₜ identifierₒₚₜ
69
+ template-head type-parameter-key identifierₒₚₜ type-tt-parameter-default
70
+ ```
71
+
72
+ ``` bnf
73
+ type-tt-parameter-default:
74
+ '=' nested-name-specifierₒₚₜ template-name
75
+ '=' nested-name-specifier 'template' template-name
76
+ ```
77
+
78
+ ``` bnf
79
+ variable-tt-parameter:
80
+ template-head 'auto' '...'ₒₚₜ identifierₒₚₜ
81
+ template-head 'auto' identifierₒₚₜ '=' nested-name-specifierₒₚₜ template-name
82
+ ```
83
+
84
+ ``` bnf
85
+ concept-tt-parameter:
86
+ 'template' '<' template-parameter-list '>' 'concept' '...'ₒₚₜ identifierₒₚₜ
87
+ 'template' '<' template-parameter-list '>' 'concept' identifierₒₚₜ '=' nested-name-specifierₒₚₜ template-name
88
+ ```
89
+
90
  ``` bnf
91
  simple-template-id:
92
  template-name '<' template-argument-listₒₚₜ '>'
93
  ```
94
 
 
112
 
113
  ``` bnf
114
  template-argument:
115
  constant-expression
116
  type-id
117
+ nested-name-specifierₒₚₜ template-name
118
+ nested-name-specifier 'template' template-name
119
+ braced-init-list
120
  ```
121
 
122
  ``` bnf
123
  constraint-expression:
124
  logical-or-expression
125
  ```
126
 
127
  ``` bnf
128
  deduction-guide:
129
+ explicit-specifierₒₚₜ template-name '(' parameter-declaration-clause ')' '->' simple-template-id requires-clauseₒₚₜ ';'
130
  ```
131
 
132
  ``` bnf
133
  concept-definition:
134
  concept concept-name attribute-specifier-seqₒₚₜ '=' constraint-expression ';'
 
140
  ```
141
 
142
  ``` bnf
143
  typename-specifier:
144
  typename nested-name-specifier identifier
145
+ typename nested-name-specifier templateₒₚₜ simple-template-id
146
  ```
147
 
148
  ``` bnf
149
  explicit-instantiation:
150
  externₒₚₜ template declaration