5
struct A final
{
    int a;

    void* operator new(size_t size)
    {
        //
        // Is size always equal to sizeof(A) here?
        //
        return ::operator new(size); 
    }

    void operator delete(void* ptr)
    {
        ::operator delete(ptr);
    }
};

int main()
{
    for (auto i = 0; i < 100; i++)
    {
        delete new A;
    }
}

私の質問もコードに埋め込まれています。

C++ 標準は、A::operator new() に渡されるサイズが常に同じであることを保証しますか?

更新: ここでは、A が最終クラスのみであると考えてください。

4

2 に答える 2