17 A new-expression that creates an object of type T initializes that object as follows:
(17.1) — If the new-initializer is omitted, the object is default-initialized (8.5). [ Note: If no initialization is
performed, the object has an indeterminate value. — end note ]
(17.2) — Otherwise, the new-initializer is interpreted according to the initialization rules of 8.5 for directinitialization
7 To default-initialize an object of type T means:
(7.1) — If T is a (possibly cv-qualified) class type (Clause 9), constructors are considered. The applicable
constructors are enumerated (13.3.1.3), and the best one for the initializer () is chosen through overload
resolution (13.3). The constructor thus selected is called, with an empty argument list, to initialize the
object.
(7.2) — If T is an array type, each element is default-initialized.
(7.3) — Otherwise, no initialization is performed.