引用 金星凌日:C++标准不允许全局重载placement new,因为这个函数被定义为inline。但允许在类中重载。
你最后那段代码g++编译通不过,提示“no suitable ‘operator delete’ for ‘MyClass’”。
此外,我记得C++标准是禁止重载placement new操作符的。
而且如果在类中只重载另外2种形式,没重载这个形式,以后调用new(place)就得用::new(place),这是非常不方便的。
只需要注意不要全局重载,只在类中重载就可以了(文中已说明)。因为标准库中可能已经定义了相同的重载函数。