http://eel.is/c++draft/intro.execution#def:full-expression:
A full-expression is
— an invocation of a destructor generated at the end of the lifetime of an object other than a temporary object ([class.temporary]), or
Here is an example
void foo()
{
const auto& rk = Klass{};
Klass k;
// ...
// generated invocation `k.~Klass()` is a full-expression
// generated invocation `rk.~Klass()` is not a full-expression?
}
I think it is intended to be a full-expression, so the Standard should say something like
other than a temporary object whose lifetime was not extended
http://eel.is/c++draft/intro.execution#def:full-expression:
Here is an example
I think it is intended to be a full-expression, so the Standard should say something like