没有在任何地方使用下面的东西,但这个问题仍然在我脑海中很久。
void* operator new (size_t size)
{
// distort `size` to other value
return malloc(size);
}
知道上面对于重载可能不是一个明确定义的行为new
(比如如果size
减少了),为什么标准不强制编译器将其设为void* operator new (const size_t);
?
同样可以争论operator delete
,它应该在哪里void operator delete (void* const);
(添加const
以避免指针被改变)。