This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-10-26
[Moved to DR at the February, 2014 meeting.]
Bullet 6 of 11.4.5 [class.ctor] paragraph 5 gives an abstract class a deleted default constructor when the virtual base has no default constructor, even though the abstract class's default constructor can never construct the virtual base class subobject. This seems parallel to the case described in issue 257 for mem-initializers. Should a similar accommodation be made to avoid deleted default constructors in abstract classes?
Notes from the April, 2013 meeting:
CWG agreed that a virtual base class should not cause an abstract class's default constructor to be defined as deleted.
Proposed resolution (August, 2013) [superseded]:
Change 11.4.5 [class.ctor] paragraph 4 as follows:
...A defaulted default constructor for class X is defined as deleted if:
...
any
direct or virtual base class, ornon-static data member with no brace-or-equal-initializer, or any direct base class, or, if X is not abstract, any virtual base class, has class type M (or array thereof) and either M has no default constructor or overload resolution (12.2 [over.match]) as applied to M's default constructor results in an ambiguity or in a function that is deleted or inaccessible from the defaulted default constructor, or...
Proposed resolution (November, 2013):
This issue is resolved by the resolution of issue 1658.