Otherwise, if
T is a reference type,
the expression has the same effect as
direct-initializing an invented variable
t of type
T from
the initializer and then
using
t as the result of the expression;
the result is an lvalue if
T is an lvalue reference type or
an rvalue reference to function type and
an xvalue otherwise
.