You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[basic.stc.dynamic]/4 of N3691 says:
The following allocation and deallocation functions (18.6)
are implicitly declared in global scope in each translation unit of a program.
void* operator new(std::size_t);
void* operator new;
void operator delete(void_);
void operator delete;
There are no explicit exception specifications in the declarations.
However, [support.dynamic]/1 says:
Header synopsis
The exception specifications of operator delete/operator delete[] are different.
This inconsistency is probably not by design, since "(18.6)" in [basic.stc.dynamic]/4 links to [support.dynamic] directly without notes about exception specifications.
The text was updated successfully, but these errors were encountered:
This came up in discussion of core issue 1552, and we're planning on fixing it there. I don't think we can regard this as editorial, because it's not trivially obvious which of the two contradictory declarations is correct.
[basic.stc.dynamic]/4 of N3691 says:
The following allocation and deallocation functions (18.6)
are implicitly declared in global scope in each translation unit of a program.
void* operator new(std::size_t);
void* operator new;
void operator delete(void_);
void operator delete;
There are no explicit exception specifications in the declarations.
However, [support.dynamic]/1 says:
Header synopsis
namespace std {
...
void* operator new(std::size_t size);
void* operator new(std::size_t size, const std::nothrow_t&) noexcept;
void operator delete(void* ptr) noexcept;
void operator delete(void* ptr, const std::nothrow_t&) noexcept;
void* operator new[](std::size_t size);
void* operator new[](std::size_t size, const std::nothrow_t&) noexcept;
void operator delete[](void* ptr) noexcept;
void operator delete[](void* ptr, const std::nothrow_t&) noexcept;
void* operator new (std::size_t size, void* ptr) noexcept;
void* operator new[](std::size_t size, void* ptr) noexcept;
void operator delete (void* ptr, void_) noexcept;
void operator delete[](void_ ptr, void*) noexcept;
}
The exception specifications of operator delete/operator delete[] are different.
This inconsistency is probably not by design, since "(18.6)" in [basic.stc.dynamic]/4 links to [support.dynamic] directly without notes about exception specifications.
The text was updated successfully, but these errors were encountered: