|
29 | 29 |
|
30 | 30 | \begin{bnf}
|
31 | 31 | \nontermdef{class-specifier}\br
|
32 |
| - class-head \terminal{\{} member-specification\opt{} \terminal{\}} |
| 32 | + class-head \terminal{\{} \opt{member-specification} \terminal{\}} |
33 | 33 | \end{bnf}
|
34 | 34 |
|
35 | 35 | \begin{bnf}
|
36 | 36 | \nontermdef{class-head}\br
|
37 |
| - class-key attribute-specifier-seq\opt{} class-head-name class-virt-specifier\opt{} base-clause\opt{}\br |
38 |
| - class-key attribute-specifier-seq\opt{} base-clause\opt{} |
| 37 | + class-key \opt{attribute-specifier-seq} class-head-name \opt{class-virt-specifier} \opt{base-clause}\br |
| 38 | + class-key \opt{attribute-specifier-seq} \opt{base-clause} |
39 | 39 | \end{bnf}
|
40 | 40 |
|
41 | 41 | \begin{bnf}
|
42 | 42 | \nontermdef{class-head-name}\br
|
43 |
| - nested-name-specifier\opt{} class-name |
| 43 | + \opt{nested-name-specifier} class-name |
44 | 44 | \end{bnf}
|
45 | 45 |
|
46 | 46 | \begin{bnf}
|
|
431 | 431 |
|
432 | 432 | \begin{bnf}
|
433 | 433 | \nontermdef{member-specification}\br
|
434 |
| - member-declaration member-specification\opt{}\br |
435 |
| - access-specifier \terminal{:} member-specification\opt{} |
| 434 | + member-declaration \opt{member-specification}\br |
| 435 | + access-specifier \terminal{:} \opt{member-specification} |
436 | 436 | \end{bnf}
|
437 | 437 |
|
438 | 438 | \begin{bnf}
|
439 | 439 | \nontermdef{member-declaration}\br
|
440 |
| - attribute-specifier-seq\opt{} decl-specifier-seq\opt{} member-declarator-list\opt{} \terminal{;}\br |
| 440 | + \opt{attribute-specifier-seq} \opt{decl-specifier-seq} \opt{member-declarator-list} \terminal{;}\br |
441 | 441 | function-definition\br
|
442 | 442 | using-declaration\br
|
443 | 443 | static_assert-declaration\br
|
|
455 | 455 |
|
456 | 456 | \begin{bnf}
|
457 | 457 | \nontermdef{member-declarator}\br
|
458 |
| - declarator virt-specifier-seq\opt{} pure-specifier\opt{}\br |
| 458 | + declarator \opt{virt-specifier-seq} \opt{pure-specifier}\br |
459 | 459 | declarator requires-clause\br
|
460 |
| - declarator brace-or-equal-initializer\opt{}\br |
461 |
| - identifier\opt{} attribute-specifier-seq\opt{} \terminal{:} constant-expression brace-or-equal-initializer\opt{} |
| 460 | + declarator \opt{brace-or-equal-initializer}\br |
| 461 | + \opt{identifier} \opt{attribute-specifier-seq} \terminal{:} constant-expression \opt{brace-or-equal-initializer} |
462 | 462 | \end{bnf}
|
463 | 463 |
|
464 | 464 | \begin{bnf}
|
|
1304 | 1304 | A \grammarterm{member-declarator} of the form
|
1305 | 1305 |
|
1306 | 1306 | \begin{ncbnftab}
|
1307 |
| -identifier\opt{} attribute-specifier-seq\opt{} \terminal{:} constant-expression brace-or-equal-initializer\opt{} |
| 1307 | +\opt{identifier} \opt{attribute-specifier-seq} \terminal{:} constant-expression \opt{brace-or-equal-initializer} |
1308 | 1308 | \end{ncbnftab}
|
1309 | 1309 |
|
1310 | 1310 | \indextext{\idxcode{:}!bit-field declaration}%
|
|
0 commit comments