This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 110b. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2023-01-15


1611. Deleted default constructor for abstract class

Section: 11.4.5  [class.ctor]     Status: C++14     Submitter: Ville Voutilainen     Date: 2013-01-31

[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:

Proposed resolution (November, 2013):

This issue is resolved by the resolution of issue 1658.