|
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}
|
|
441 | 441 |
|
442 | 442 | \begin{bnf}
|
443 | 443 | \nontermdef{member-specification}\br
|
444 |
| - member-declaration member-specification\opt{}\br |
445 |
| - access-specifier \terminal{:} member-specification\opt{} |
| 444 | + member-declaration \opt{member-specification}\br |
| 445 | + access-specifier \terminal{:} \opt{member-specification} |
446 | 446 | \end{bnf}
|
447 | 447 |
|
448 | 448 | \begin{bnf}
|
449 | 449 | \nontermdef{member-declaration}\br
|
450 |
| - attribute-specifier-seq\opt{} decl-specifier-seq\opt{} member-declarator-list\opt{} \terminal{;}\br |
| 450 | + \opt{attribute-specifier-seq} \opt{decl-specifier-seq} \opt{member-declarator-list} \terminal{;}\br |
451 | 451 | function-definition\br
|
452 | 452 | using-declaration\br
|
453 | 453 | static_assert-declaration\br
|
|
465 | 465 |
|
466 | 466 | \begin{bnf}
|
467 | 467 | \nontermdef{member-declarator}\br
|
468 |
| - declarator virt-specifier-seq\opt{} pure-specifier\opt{}\br |
| 468 | + declarator \opt{virt-specifier-seq} \opt{pure-specifier}\br |
469 | 469 | declarator requires-clause\br
|
470 |
| - declarator brace-or-equal-initializer\opt{}\br |
471 |
| - identifier\opt{} attribute-specifier-seq\opt{} \terminal{:} constant-expression brace-or-equal-initializer\opt{} |
| 470 | + declarator \opt{brace-or-equal-initializer}\br |
| 471 | + \opt{identifier} \opt{attribute-specifier-seq} \terminal{:} constant-expression \opt{brace-or-equal-initializer} |
472 | 472 | \end{bnf}
|
473 | 473 |
|
474 | 474 | \begin{bnf}
|
|
1314 | 1314 | A \grammarterm{member-declarator} of the form
|
1315 | 1315 |
|
1316 | 1316 | \begin{ncbnftab}
|
1317 |
| -identifier\opt{} attribute-specifier-seq\opt{} \terminal{:} constant-expression brace-or-equal-initializer\opt{} |
| 1317 | +\opt{identifier} \opt{attribute-specifier-seq} \terminal{:} constant-expression \opt{brace-or-equal-initializer} |
1318 | 1318 | \end{ncbnftab}
|
1319 | 1319 |
|
1320 | 1320 | \indextext{\idxcode{:}!bit-field declaration}%
|
|
0 commit comments