From Jason Turner

[gram.class]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp96bqhzla/{from.md → to.md} +34 -8
tmp/tmp96bqhzla/{from.md → to.md} RENAMED
@@ -11,22 +11,29 @@ class-specifier:
11
  class-head '{' member-specificationₒₚₜ '}'
12
  ```
13
 
14
  ``` bnf
15
  class-head:
16
- class-key attribute-specifier-seqₒₚₜ class-head-name class-virt-specifierₒₚₜ base-clauseₒₚₜ
17
  class-key attribute-specifier-seqₒₚₜ base-clauseₒₚₜ
18
  ```
19
 
20
  ``` bnf
21
  class-head-name:
22
  nested-name-specifierₒₚₜ class-name
23
  ```
24
 
25
  ``` bnf
26
- class-virt-specifier:
 
 
 
 
 
27
  final
 
 
28
  ```
29
 
30
  ``` bnf
31
  class-key:
32
  class
@@ -42,13 +49,15 @@ member-specification:
42
 
43
  ``` bnf
44
  member-declaration:
45
  attribute-specifier-seqₒₚₜ decl-specifier-seqₒₚₜ member-declarator-listₒₚₜ ';'
46
  function-definition
 
47
  using-declaration
48
  using-enum-declaration
49
  static_assert-declaration
 
50
  template-declaration
51
  explicit-specialization
52
  deduction-guide
53
  alias-declaration
54
  opaque-enum-declaration
@@ -61,20 +70,19 @@ member-declarator-list:
61
  member-declarator-list ',' member-declarator
62
  ```
63
 
64
  ``` bnf
65
  member-declarator:
66
- declarator virt-specifier-seqₒₚₜ pure-specifierₒₚₜ
67
- declarator requires-clause
68
- declarator brace-or-equal-initializerₒₚₜ
69
  identifierₒₚₜ attribute-specifier-seqₒₚₜ ':' constant-expression brace-or-equal-initializerₒₚₜ
70
  ```
71
 
72
  ``` bnf
73
  virt-specifier-seq:
74
- virt-specifier
75
- virt-specifier-seq virt-specifier
76
  ```
77
 
78
  ``` bnf
79
  virt-specifier:
80
  override
@@ -84,10 +92,28 @@ virt-specifier:
84
  ``` bnf
85
  pure-specifier:
86
  '=' '0'
87
  ```
88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  ``` bnf
90
  conversion-function-id:
91
  operator conversion-type-id
92
  ```
93
 
@@ -121,11 +147,11 @@ base-specifier:
121
 
122
  ``` bnf
123
  class-or-decltype:
124
  nested-name-specifierₒₚₜ type-name
125
  nested-name-specifier template simple-template-id
126
- decltype-specifier
127
  ```
128
 
129
  ``` bnf
130
  access-specifier:
131
  private
 
11
  class-head '{' member-specificationₒₚₜ '}'
12
  ```
13
 
14
  ``` bnf
15
  class-head:
16
+ class-key attribute-specifier-seqₒₚₜ class-head-name class-property-specifier-seqₒₚₜ base-clauseₒₚₜ
17
  class-key attribute-specifier-seqₒₚₜ base-clauseₒₚₜ
18
  ```
19
 
20
  ``` bnf
21
  class-head-name:
22
  nested-name-specifierₒₚₜ class-name
23
  ```
24
 
25
  ``` bnf
26
+ class-property-specifier-seq:
27
+ class-property-specifier class-property-specifier-seqₒₚₜ
28
+ ```
29
+
30
+ ``` bnf
31
+ class-property-specifier:
32
  final
33
+ trivially_relocatable_if_eligible
34
+ replaceable_if_eligible
35
  ```
36
 
37
  ``` bnf
38
  class-key:
39
  class
 
49
 
50
  ``` bnf
51
  member-declaration:
52
  attribute-specifier-seqₒₚₜ decl-specifier-seqₒₚₜ member-declarator-listₒₚₜ ';'
53
  function-definition
54
+ friend-type-declaration
55
  using-declaration
56
  using-enum-declaration
57
  static_assert-declaration
58
+ consteval-block-declaration
59
  template-declaration
60
  explicit-specialization
61
  deduction-guide
62
  alias-declaration
63
  opaque-enum-declaration
 
70
  member-declarator-list ',' member-declarator
71
  ```
72
 
73
  ``` bnf
74
  member-declarator:
75
+ declarator virt-specifier-seqₒₚₜ function-contract-specifier-seqₒₚₜ pure-specifierₒₚₜ
76
+ declarator requires-clause function-contract-specifier-seqₒₚₜ
77
+ declarator brace-or-equal-initializer
78
  identifierₒₚₜ attribute-specifier-seqₒₚₜ ':' constant-expression brace-or-equal-initializerₒₚₜ
79
  ```
80
 
81
  ``` bnf
82
  virt-specifier-seq:
83
+ virt-specifier virt-specifier-seqₒₚₜ
 
84
  ```
85
 
86
  ``` bnf
87
  virt-specifier:
88
  override
 
92
  ``` bnf
93
  pure-specifier:
94
  '=' '0'
95
  ```
96
 
97
+ ``` bnf
98
+ friend-type-declaration:
99
+ friend friend-type-specifier-list ';'
100
+ ```
101
+
102
+ ``` bnf
103
+ friend-type-specifier-list:
104
+ friend-type-specifier '...'ₒₚₜ
105
+ friend-type-specifier-list ',' friend-type-specifier '...'ₒₚₜ
106
+ ```
107
+
108
+ ``` bnf
109
+ friend-type-specifier:
110
+ simple-type-specifier
111
+ elaborated-type-specifier
112
+ typename-specifier
113
+ ```
114
+
115
  ``` bnf
116
  conversion-function-id:
117
  operator conversion-type-id
118
  ```
119
 
 
147
 
148
  ``` bnf
149
  class-or-decltype:
150
  nested-name-specifierₒₚₜ type-name
151
  nested-name-specifier template simple-template-id
152
+ computed-type-specifier
153
  ```
154
 
155
  ``` bnf
156
  access-specifier:
157
  private