view anagram/ag1/cppalloc.cpp @ 6:607e3be6bad8

Adjust to the moving target called the C++ standard. Apparently nowadays it's not allowed to define an explicit copy constructor but not an assignment operator. Consequently, defining the explicit copy constructor in terms of the implicit/automatic assignment operator for general convenience no longer works. Add assignment operators. Caution: not tested with the IBM compiler, but there's no particular reason it shouldn't work.
author David A. Holland
date Mon, 30 May 2022 23:46:22 -0400
parents 7661c1604e49
children
line wrap: on
line source

#include <stddef.h>
#include "port.h"

#include "myalloc.h"

/*
 * With the IBM compiler these apparently may not be in a .lib file.
 */

void *operator new(size_t size) {
  //newCalls++;
  void *pointer = myalloc(size);
  return pointer;
}

void operator delete(void *p) {
  //deleteCalls++;
  DEALLOCATE(p);
}

void operator delete(void *p, size_t) {
  //deleteCalls++;
  DEALLOCATE(p);
}

void *operator new[](size_t size) {
  //newArrayCalls++;
  void *pointer = myalloc(size);
  return pointer;
}

void operator delete[](void *p) {
  //deleteArrayCalls++;
  DEALLOCATE(p);
}

void operator delete[](void *p, size_t) {
  //deleteArrayCalls++;
  DEALLOCATE(p);
}