Est-ce que delete ptr
diffèrent de operator delete(ptr)
seulement dans ce, que delete
appels ptr
destructor? Ou en d'autres termes, est-ce que delete ptr
commence par appeler un destructeur de ptr
puis operator delete(ptr)
pour libérer de la mémoire allouée? Est alors delete ptr
techniquement équivalent à ce qui suit:Supprimer vs opérateur supprimer (et pointeur vide)
T * ptr = new T;
//delete ptr equivalent:
ptr->~T();
::operator delete(static_cast<void *>(ptr));
?
Oui, c'est la seule différence, outre le fait que vous pouvez surcharger 'operator delete'. –