关于重载的 operator new和 operator delete
struct Point {
public:
static void * operator new (size_t size);
static void operator delete(void *p, size_t size);
......
};
按照Scott Meyers的说法,如果自己定做operator new和operator delete的话,应当是上面的那幅模样。但编译器有警告如下:
void *__cdecl Point::operator new(unsigned int)' : no matching operator delete found; memory will not be freed if initialization throws an exception
它认为delete和new是不相配的。我把operator delete的第二个参数拿掉就没有了这个警告,但这和Scott Meyers的描述相异。why?