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 只是一个最终类。