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;
}
}
La mia domanda è anche incorporata nel codice.Le dimensioni sono passate in A :: operator new() sempre uguale a sizeof (A)?
Lo standard C++ garantisce che le dimensioni passate in A :: operator new() siano sempre le stesse?
Aggiornamento: Qui, si consideri che A è solo una classe finale.
Che ne dici se A è una classe finale? – xmllmx
@xmllmx: Nulla di tutto ciò in C++ –
si prega di rivedere il post. L'ho revisionato. Faccio una struct A final. – xmllmx