------- Comment #8 from bangerth at dealii dot org 2007-05-30 05:13 ------- The point Gabriel and the others are trying to make is that when calling operator delete on a pointer, first the object is destroyed by calling the destructor (or doing nothing in case this is a plain-old-data type), then the memory is deallocated (or whatever else operator delete wants to do with it). Now, since you pass a void *, the compiler can't know what to do about step 1: it is unknown whether a destructor should be called or not. It simply doesn't make sense to call operator delete on a void*. If you're sure that the object pointed to doesn't need a destructor call, you could cast the pointer to char*, but if you don't the standard says that the compiler could do whatever it pleases.
I, too, fail to see why anyone would want to switch this warning off, rather than modifying the code to tell the compiler what the heck to do in a situation where it simply can't know what to do... W. -- bangerth at dealii dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bangerth at dealii dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32085