汎用ポインタによるdelete

以下のようなコードでは、

メモリリークを起こす可能性があることがわかった。

// Aクラスが宣言されているとする
class A;

void Func()
{
    A *pA;

    // Aのインスタンスを生成
    pA = new A();

    // 生成したAのインスタンスへのポインタを汎用ポインタへ代入
    void *p = pA;

    // 汎用ポインタからインスタンスを開放
    delete p;
}

汎用ポインタからは、delete時にインスタンスのサイズが不明なので

メモリリークが起こる可能性があるかもしれないが、

詳細は調査中である。