Where T is a class, I've always considered all such declarations to be
function calls, where the member function in question is the constructor,
and where the return value is a non-const reference to an anonymous object.