fork download
  1. #include <iostream>
  2. // sized class-specific deallocation functions
  3. struct X {
  4. static void operator delete(void* ptr, std::size_t sz)
  5. {
  6. std::cout << "custom delete for size " << sz << '\n';
  7. ::operator delete(ptr);
  8. }
  9. static void operator delete[](void* ptr, std::size_t sz)
  10. {
  11. std::cout << "custom delete for size " << sz << '\n';
  12. ::operator delete(ptr);
  13. }
  14. int i;
  15. };
  16. int main() {
  17. X* p1 = new X;
  18. delete p1;
  19. X* p2 = new X[10];
  20. delete[] p2;
  21. std::cout << sizeof(X*) << '<<<\n';
  22. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
custom delete for size 4
custom delete for size 44
41010580490