Why a virtual call to a pure virtual function from a constructor is UB and a call to a non-pure virtual function is allowed by the Standard?
From 10.4 Abstract Classes parag. 6 in the Standard : "Member functions can be called from a constructor (or destructor) of an abstract class; the effect of making a virtual call to a pure virtual function directly or indirectly for the object being created (or destroyed) from such a constructor (or destructor) is undefined." Assuming that a call to a non-pure virtual function from a constructor (or destructor), is allowed by the Standard, why the difference ? [EDIT] More standards quotes about pure virtual functions: § 10.4/2 A virtual function is specified pure by using a pure-specifier (9.2