this program:

#include <stdio.h>
#include <stdlib.h>

struct A {
      void* operator new(size_t alloc_size) {
              printf("A::operator new()\n");
              return malloc(alloc_size);
      };

      void operator delete(void* p, size_t s) {
              printf("A::delete %d\n", s);
      };


      A()  {printf("A constructing\n"); throw 2;};

      virtual ~A() {}

};

int
main() {
  try {
      A* ap = new A;
      delete ap;
  }
  catch(int e) {printf("caught %i\n",e); return 1;}
}  

compiles okay with g++-4.0 but when i try to compile it with g++-4.1 i
get:

 In destructor 'virtual A::~A()':
17: error: no suitable 'operator delete' for 'A'
 In function 'int main()':
24: error: no suitable 'operator delete' for 'A'
25: error: no suitable 'operator delete' for 'A'
27: confused by earlier errors, bailing out

any ideas how to fix it?

--alex--

-- 
| I believe the moment is at hand when, by a paranoiac and active |
|  advance of the mind, it will be possible (simultaneously with  |
|  automatism and other passive states) to systematize confusion  |
|  and thus to help to discredit completely the world of reality. |


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to