7
Expressions
[expr]
7.6
Compound expressions
[expr.compound]
7.6.1
Postfix expressions
[expr.post]
7.6.1.4
Pseudo destructor call
[expr.pseudo]
1
#
The use of a
pseudo-destructor-name
after a dot
.
or arrow
->
operator represents the destructor for the non-class type denoted by
type-name
or
decltype-specifier
.
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
.
2
#
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 cv-unqualified versions of the object type and of the type designated by the
pseudo-destructor-name
shall be the same type
.
Furthermore, the two
type-name
s
in a
pseudo-destructor-name
of the form
nested-name-specifier
o
p
t
type-name
::
~
type-name
shall designate the same scalar type (ignoring cv-qualification)
.