If the initializer is a parenthesized single expression,
the type conversion expression is equivalent (in
definedness, and if defined in meaning) to the corresponding cast
expression (
[expr.cast])
. If the type is
cv void
and the initializer is
(),
the expression is a prvalue of the specified type
that performs no initialization
. Otherwise,
the expression is a prvalue of the specified type
whose result object is direct-initialized (
[dcl.init])
with the initializer
. For an expression of the form
T(),
T shall not be an array type
.