Files
cppdraft_translate/cppdraft/new/delete/placement.md
2025-10-25 03:02:53 +03:00

3.4 KiB

[new.delete.placement]

17 Language support library [support]

17.6 Dynamic memory management [support.dynamic]

17.6.3 Storage allocation and deallocation [new.delete]

17.6.3.4 Non-allocating forms [new.delete.placement]

1

#

These functions are reserved; a C++ program may not define functions that displace the versions in the C++ standard library ([constraints]).

The provisions of [basic.stc.dynamic] do not apply to these reserved placement forms of operator new and operator delete.

🔗

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

2

#

Returns: ptr.

3

#

Remarks: Intentionally performs no other action.

4

#

[Example 1:

This can be useful for constructing an object at a known address:void* place = operator new(sizeof(Something)); Something* p = new (place) Something();

— end example]

🔗

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

5

#

Returns: ptr.

6

#

Remarks: Intentionally performs no other action.

🔗

void operator delete(void* ptr, void*) noexcept;

7

#

Effects: Intentionally performs no action.

8

#

Remarks: Default function called when any part of the initialization in a placement new-expression that invokes the library's non-array placement operator new terminates by throwing an exception ([expr.new]).

🔗

void operator delete[](void* ptr, void*) noexcept;

9

#

Effects: Intentionally performs no action.

10

#

Remarks: Default function called when any part of the initialization in a placement new-expression that invokes the library's array placement operator new terminates by throwing an exception ([expr.new]).