Compiler Error C2325

'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
}