S
Steven T. Hatton
ISO/IEC 14882:2003:
"5.2.4 Pseudo destructor call [expr.pseudo]
The use of a pseudo-destructor-name after a dot . or arrow -> operator
represents the destructor for the non-class type named by
type-name. The result shall only be used as the operand for the
function call operator (), and the result of such a call has type
void. The only effect is the evaluation of the postfix- expression
before the dot or arrow.
The left hand side of the dot operator shall be of scalar type. The
left hand side of the arrow operator shall be of pointer to scalar
type. This scalar type is the object type. The type designated by the
pseudo-destructor-name shall be the same as the object type.
Furthermore, the two type-names in a pseudo-destructor-name of the
form
:pt nested-name-specifieropt type-name :: ~ type-name
shall designate the same scalar type. The cv-unqualified versions of
the object type and of the type desig- nated by the
pseudo-destructor-name shall be the same type."
Hu?????
"5.2.4 Pseudo destructor call [expr.pseudo]
The use of a pseudo-destructor-name after a dot . or arrow -> operator
represents the destructor for the non-class type named by
type-name. The result shall only be used as the operand for the
function call operator (), and the result of such a call has type
void. The only effect is the evaluation of the postfix- expression
before the dot or arrow.
The left hand side of the dot operator shall be of scalar type. The
left hand side of the arrow operator shall be of pointer to scalar
type. This scalar type is the object type. The type designated by the
pseudo-destructor-name shall be the same as the object type.
Furthermore, the two type-names in a pseudo-destructor-name of the
form
:pt nested-name-specifieropt type-name :: ~ type-name
shall designate the same scalar type. The cv-unqualified versions of
the object type and of the type desig- nated by the
pseudo-destructor-name shall be the same type."
Hu?????