'type' : unexpected type to the right of 'name'
An attempt was made to call a destructor of an incorrect type.
The following is an example of this error, plus an example of how to avoid the error:
class A {};
void f()
{
A** ppa = new A *;
ppa->~A*; // error
}
typedef A* pA_t;
void g()
{
pA_t *ppa = new pA_t;
ppa->~pA_t(); // ok
}