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 が最終クラスのみであると考えてください。