std::pmr::polymorphic_allocator<T>::allocate_bytes
提供: cppreference.com
< cpp | memory | polymorphic allocator
[[nodiscard]]void* allocate_bytes(std::size_t nbytes, std::size_t alignment = alignof(std::max_align_t)); | (C++20以上) | |
ベースとなるメモリリソースを用いて、指定されたアライメント alignment
で、 nbytes
バイトの記憶域を確保します。 return resource()->allocate(nbytes, alignment);
と同等です。
目次 |
[編集]引数
nbytes | - | 確保するバイト数 |
alignment | - | 使用するアライメント |
[編集]戻り値
確保された記憶域を指すポインタ。
[編集]ノート
この関数は完全特殊化されたアロケータ std::polymorphic_allocator<> で使用するために導入されましたが、任意の特殊化で便利かもしれません。
static_cast<U*> による任意のポインタ型 U* への変換をサポートするために、戻り値の型は (std::byte* とかではなく) void* です。
[編集]例外
resource()->allocate の呼び出しによって投げられるあらゆる例外を投げる可能性があります。
[編集]関連項目
(C++20) | オブジェクトまたは配列に適した生メモリを確保します (パブリックメンバ関数) |
(C++20) | オブジェクトを確保および構築します (パブリックメンバ関数) |
メモリを確保します (パブリックメンバ関数) | |
[静的] | アロケータを使用して未初期化記憶域を確保します ( std::allocator_traits<Alloc> のパブリック静的メンバ関数) |
メモリを確保します ( std::pmr::memory_resource のパブリックメンバ関数) |