T(i_do_not_exist);
is an object declaration with the same meaning as T i_do_not_exist;
.
N4567 § 6.8[stmt.ambig]p1
There is an ambiguity in the grammar involving expression-statements and declarations: An expression-statement with a function-style explicit type conversion (5.2.3) as its leftmost subexpression can be indistinguishable from a declaration where the first declarator starts with a (
. In those cases the statement is a declaration.
§ 8.3[dcl.meaning]p6
In a declaration T D
where D
has the form
( D1 )
the type of the contained declarator-id is the same as that of the contained declarator-id in the declaration
T D1
Parentheses do not alter the type of the embedded declarator-id, but they can alter the binding of complex declarators.