table of contents
        
      
      
    | std::experimental::pmr::monotonic_buffer_resource::do_allocate(3) | C++ Standard Libary | std::experimental::pmr::monotonic_buffer_resource::do_allocate(3) | 
NAME¶
std::experimental::pmr::monotonic_buffer_resource::do_allocate - std::experimental::pmr::monotonic_buffer_resource::do_allocate
Synopsis¶
 virtual void* do_allocate(std::size_t bytes, std::size_t (library
    fundamentals TS)
  
   alignment);
  
   Allocates storage.
  
   If the current buffer has sufficient unused space to fit a block with the
    specified
  
   size and alignment, allocates the return block from the current buffer.
  
   Otherwise, this function allocates a new buffer by calling
  
   upstream_resource()->allocate(n, m), where n is not less than the greater
    of bytes
  
   and the next buffer size and m is not less than alignment. It sets the new
    buffer as
  
   the current buffer, increases the next buffer size by an
    implementation-defined
  
   growth factor (which is not necessarily integral), and then allocates the
    return
  
   block from the newly allocated buffer.
Return value¶
 A pointer to allocated storage of at least bytes bytes in size,
    aligned to the
  
   specified alignment if such alignment is supported, and to
    alignof(std::max_align_t)
  
   otherwise.
Exceptions¶
Throws nothing unless calling allocate() on the upstream memory resource throws.
See also¶
 allocate allocates memory
  
   (public member function of std::experimental::pmr::memory_resource)
  
   do_allocate allocates memory
  
   [virtual] (virtual protected member function
    of
  
   std::experimental::pmr::memory_resource)
| 2022.07.31 | http://cppreference.com |