Description
[intro.execution] p5
If a language construct is defined to produce an implicit call of a function, a use of the language construct is considered to be an expression for the purposes of this definition.
Hence, the implicit call of a constructor should be considered as an expression.
[class.ctor.general] p2
A constructor is used to initialize objects of its class type.
As well, some rules in the standard also imply a constructor call is used to initialize an object, such as
If overload resolution is successful, the selected constructor is called to initialize the object, with the initializer expression or expression-list as its argument(s).
Hence, the constructor call should be categorized to prvalue as per [basic.lval] p1
A prvalue is an expression whose evaluation initializes an object or computes the value of an operand of an operator, as specified by the context in which it appears, or an expression that has type cv void.
However, in the current standard, there is no common rule that phrases what's the type of a constructor call(i.e. what's the type of that prvalue). Furthermore, after the amending of #4737, this issue seems to become more obscure.