Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/memory/polymorphic allocator/allocate bytes"

From cppreference.com
m (std::polymorphic_allocator => std::pmr::polymorphic_allocator)
(- nodiscard)
 
(3 intermediate revisions by 3 users not shown)
Line 3: Line 3:
  
 
{{dcl begin}}
 
{{dcl begin}}
{{dcl | since=c++20 |1=
+
{{dcl|since=c++20|1=
[[nodiscard]] void* allocate_bytes( std::size_t nbytes,
+
void* allocate_bytes( std::size_t nbytes,
                                    std::size_t alignment = alignof(std::max_align_t) );
+
                      std::size_t alignment = alignof(std::max_align_t) );
 
}}
 
}}
 
{{dcl end}}
 
{{dcl end}}
  
Allocates {{tt|nbytes}} bytes of storage at specified alignment {{tt|alignment}} using the underlying memory resource. Equivalent to {{c|return resource()->allocate(nbytes, alignment);}}.
+
Allocates {{c|nbytes}} bytes of storage at specified alignment {{c|alignment}} using the underlying memory resource. Equivalent to {{c|return resource()->allocate(nbytes, alignment);}}.
  
 
===Parameters===
 
===Parameters===
 
{{par begin}}
 
{{par begin}}
{{par | nbytes | the number of bytes to allocate}}
+
{{par|nbytes|the number of bytes to allocate}}
{{par | alignment | the alignment to use }}
+
{{par|alignment|the alignment to use}}
 
{{par end}}
 
{{par end}}
  
Line 30: Line 30:
 
===See also===
 
===See also===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/memory/polymorphic_allocator/dsc allocate_object}}
+
{{dsc inc|cpp/memory/polymorphic_allocator/dsc allocate_object}}
{{dsc inc | cpp/memory/polymorphic_allocator/dsc new_object}}
+
{{dsc inc|cpp/memory/polymorphic_allocator/dsc new_object}}
{{dsc inc | cpp/memory/polymorphic_allocator/dsc allocate}}
+
{{dsc inc|cpp/memory/polymorphic_allocator/dsc allocate}}
{{dsc inc | cpp/memory/allocator traits/dsc allocate}}
+
{{dsc inc|cpp/memory/allocator traits/dsc allocate}}
{{dsc inc | cpp/memory/memory resource/dsc allocate}}
+
{{dsc inc|cpp/memory/memory resource/dsc allocate}}
 
{{dsc end}}
 
{{dsc end}}
  
{{langlinks|ja|zh}}
+
{{langlinks|es|ja|ru|zh}}

Latest revision as of 02:48, 1 July 2024

 
 
Dynamic memory management
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Allocators
Garbage collection support
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)



 
 
void* allocate_bytes( std::size_t nbytes,
                      std::size_t alignment = alignof(std::max_align_t) );
(since C++20)

Allocates nbytes bytes of storage at specified alignment alignment using the underlying memory resource. Equivalent to return resource()->allocate(nbytes, alignment);.

Contents

[edit] Parameters

nbytes - the number of bytes to allocate
alignment - the alignment to use

[edit] Return value

A pointer to the allocated storage.

[edit] Notes

This function was introduced for use with the fully-specialized allocator std::pmr::polymorphic_allocator<>, but it may be useful in any specialization.

The return type is void* (rather than, e.g., std::byte*) to support conversion to an arbitrary pointer type U* by static_cast<U*>.

[edit] Exceptions

May throw any exceptions thrown by the call to resource()->allocate.

[edit] See also

allocates raw memory suitable for an object or an array
(public member function) [edit]
allocates and constructs an object
(public member function) [edit]
allocate memory
(public member function) [edit]
[static]
allocates uninitialized storage using the allocator
(public static member function of std::allocator_traits<Alloc>) [edit]
allocates memory
(public member function of std::pmr::memory_resource) [edit]