[new.syn]

# 17 Language support library [[support]](./#support)

## 17.6 Dynamic memory management [[support.dynamic]](support.dynamic#new.syn)

### 17.6.2 Header <new> synopsis [new.syn]

// all freestandingnamespace std {// [[alloc.errors]](alloc.errors "17.6.4 Storage allocation errors"), storage allocation errorsclass bad_alloc; class bad_array_new_length; struct destroying_delete_t {explicit destroying_delete_t() = default; }; inline constexpr destroying_delete_t destroying_delete{}; // global operator new control     enum class align_val_t : size_t {}; struct nothrow_t { explicit nothrow_t() = default; }; extern const nothrow_t nothrow; using new_handler = void (*)();
 new_handler get_new_handler() noexcept;
 new_handler set_new_handler(new_handler new_p) noexcept; // [[ptr.launder]](ptr.launder "17.6.5 Pointer optimization barrier"), pointer optimization barriertemplate<class T> constexpr T* launder(T* p) noexcept; // [[hardware.interference]](hardware.interference "17.6.6 Hardware interference size"), hardware interference sizeinline constexpr size_t hardware_destructive_interference_size = *implementation-defined*; inline constexpr size_t hardware_constructive_interference_size = *implementation-defined*;}// [[new.delete]](new.delete "17.6.3 Storage allocation and deallocation"), storage allocation and deallocationvoid* operator new(std::size_t size);void* operator new(std::size_t size, std::align_val_t alignment);void* operator new(std::size_t size, const std::nothrow_t&) noexcept;void* operator new(std::size_t size, std::align_val_t alignment, const std::nothrow_t&) noexcept;

void operator delete(void* ptr) noexcept;void operator delete(void* ptr, std::size_t size) noexcept;void operator delete(void* ptr, std::align_val_t alignment) noexcept;void operator delete(void* ptr, std::size_t size, std::align_val_t alignment) noexcept;void operator delete(void* ptr, const std::nothrow_t&) noexcept;void operator delete(void* ptr, std::align_val_t alignment, const std::nothrow_t&) noexcept;

void* operator new[](std::size_t size);void* operator new[](std::size_t size, std::align_val_t alignment);void* operator new[](std::size_t size, const std::nothrow_t&) noexcept;void* operator new[](std::size_t size, std::align_val_t alignment, const std::nothrow_t&) noexcept;

void operator delete[](void* ptr) noexcept;void operator delete[](void* ptr, std::size_t size) noexcept;void operator delete[](void* ptr, std::align_val_t alignment) noexcept;void operator delete[](void* ptr, std::size_t size, std::align_val_t alignment) noexcept;void operator delete[](void* ptr, const std::nothrow_t&) noexcept;void operator delete[](void* ptr, std::align_val_t alignment, const std::nothrow_t&) noexcept;

constexpr void* operator new (std::size_t size, void* ptr) noexcept;constexpr void* operator new[](std::size_t size, void* ptr) noexcept;void operator delete (void* ptr, void*) noexcept;void operator delete[](void* ptr, void*) noexcept;
