根据这里的说明:
如果提供了用户定义的替换,则调用(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*)(如果前者存在)。您能否告诉我草案标准的正确页面?
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*)(如果前者存在)。您能否告诉我草案标准的正确页面?