【发布时间】:2014-07-07 06:00:40
【问题描述】:
根据this
void operator delete (void*); (1)
void operator delete[](void*); (2)
void operator delete (void*, const std::nothrow_t&); (3)
void operator delete[](void*, const std::nothrow_t&); (4)
void operator delete(void*, std::size_t) (5)
void operator delete[](void*, std::size_t) (6)
void operator delete(void*, std::size_t, const std::nothrow_t&) (7)
void operator delete[](void*, std::size_t, const std::nothrow_t&) (8)
(5-8) 如果用户定义的替换被调用而不是 (1-4) 假如。标准库实现与 (1-4) 相同。
我相信引用的陈述是正确的;但是,我无法根据草案 C++14 标准 n3797 进行确认。
我检查了 3.7.4 和 18.6,没有发现明确要求删除表达式必须调用 void ::operator delete(void*, std::size_t) 而不是 void ::operator delete(void*)(如果前者存在)。
您能否将我引至标准草案的正确页面?
【问题讨论】:
标签: c++ memory-management new-operator c++14