table of contents
std::generator::promise_type::operatornew(3) | C++ Standard Libary | std::generator::promise_type::operatornew(3) |
NAME¶
std::generator::promise_type::operatornew - std::generator::promise_type::operatornew
Synopsis¶
void* operator new( std::size_t size )
requires std::same_as<Allocator, void> || (1) (since C++23)
std::default_initializable<Allocator>;
template< class Alloc, class... Args >
requires std::same_as<Allocator, void> ||
std::convertible_to<const Alloc&, Allocator> (2) (since
C++23)
void* operator new( std::size_t size, std::allocator_arg_t,
const Alloc& alloc, const Args&... );
template< class This, class Alloc, class... Args >
requires std::same_as<Allocator, void> ||
std::convertible_to<const Alloc&, Allocator> (3) (since
C++23)
void* operator new( std::size_t size, const This&,
std::allocator_arg_t,
const Alloc& alloc, const Args&... );
Allocates size bytes of uninitialized storage using default or user-provided
allocator.
Let A be
* Allocator, if it is not void,
* Alloc for (2,3), or
* std::allocator<void> otherwise.
Let B be std::allocator_traits<A>::template rebind_alloc<U> where
U is an
unspecified type whose size and alignment are both
__STDCPP_DEFAULT_NEW_ALIGNMENT__.
Initializes an allocator b of type B with:
1) A(),
2,3) A(alloc).
Uses b to allocate storage for the smallest array of U sufficient to provide
storage
for a coroutine state of size size, and unspecified additional state
necessary to
ensure that operator delete can later deallocate this memory block with an
allocator
equal to b.
Note: std::allocator_traits<B>::pointer must be of a pointer type,
otherwise the
behavior is undefined.
Parameters¶
size - the size of the storage to allocate
alloc - a user provided allocator of type Alloc
Return value¶
A pointer to the allocated storage.
Exceptions¶
1-3) May throw.
2024.06.10 | http://cppreference.com |