提问人:user1244932 提问时间:5/24/2023 更新时间:5/24/2023 访问量:90
从成员算子删除调用全局算子删除背后的想法是什么?
What is idea behind calling calling global operator delete from member operator delete?
问:
在Qt的ExternalRefCountData(QSharedPtr实现的一部分)中 https://codebrowser.dev/qt5/qtbase/src/corelib/tools/qsharedpointer_impl.h.html#159
我找到了代码:
inline void operator delete(void *ptr) { ::operator delete(ptr); }
此代码的目的是什么?
我想如果没有这条线,事情会是一样的:
auto *d = new ExternalRefCountData;
delete d;//(2)
不带第 (2) 行应
直接打电话,那没用吗?
还是我错过了什么?ExternalRefCountData::operator delete
::operator delete(ptr);
ExternalRefCountData::operator delete
答: 暂无答案
评论
inline void operator delete(void *, void *) { }
:new
语法时才能自定义,通过提供具有匹配签名的特定于类的放置删除 (25,26):voidT::operator delete(void*, void*)”,
所以也许它们以某种方式协同工作。
operator new
operator new
overload” - 不,有一个特定于类的位置。我无法回答检测到的 ASAN 不匹配。我只是从提交消息中获取了文本。delete