我读了其他帖子(一个例子:How could I sensibly overload placement operator new?),C ++标准不允许重载全局展示位置。
GCC确实在我定义时抛出错误:
void* operator new(size_t sz, void*) {
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
但是,GCC允许我定义:
template <class T>
void* operator new(size_t sz, T t) {
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
我尝试使用placement new,上面的函数模板确实可以调用。
它与更换贴纸新品有什么不同? C ++标准禁止重载全局展示位置的理由是什么?