Created on 2013-05-29.00:00:00 last changed 121 months ago
[Moved to DR at the February, 2014 meeting.]
Proposed resolution (November, 2013):
Change the grammar in 11.4 [class.mem] as follows:
Change 11.4 [class.mem] paragraph 1 as follows:
...Except when used to declare friends (11.8.4 [class.friend]) or to introduce the name of a member of a base class into a derived class (9.9 [namespace.udecl]), or when the declaration is an empty-declaration, member-declarations declare members of the class, and each such member-declaration shall declare at least one member name of the class.
The grammar in 11.4 [class.mem] and 9.5.1 [dcl.fct.def.general] paragraph 1 are (in part):
This leads to the following curiosity:
struct A { void f1() = delete; // #1, ok void f2() = delete;; // #2, ok void f3() = delete;;; // #3, error, extraneous semicolon };
This could be addressed by moving the semicolon into the productions for function-body for the non-default/delete forms or by adding empty-declaration to the list of member-declaration productions, as is done with namespace-scope declarations.
History | |||
---|---|---|---|
Date | User | Action | Args |
2014-11-24 00:00:00 | admin | set | status: dr -> c++14 |
2014-03-03 00:00:00 | admin | set | messages: + msg4954 |
2014-03-03 00:00:00 | admin | set | status: tentatively ready -> dr |
2014-01-20 00:00:00 | admin | set | messages: + msg4733 |
2014-01-20 00:00:00 | admin | set | status: drafting -> tentatively ready |
2013-10-14 00:00:00 | admin | set | status: open -> drafting |
2013-05-29 00:00:00 | admin | create |