最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<memory_resource>

# std::pmr::memory_resource::do_allocate(C++17)

    virtual void* do_allocate(std::size_t bytes, std::size_t alignment) = 0;

## 概要

派生クラスでオーバライドし、メモリを確保する処理を実装する。

## 事前条件

`alignment`は2の累乗であること

## 引数

- `bytes` -- 確保する領域のサイズ
- `alignment` -- 確保領域のアライメント要求

## 効果

少なくとも`bytes`のメモリを確保し、`alignment`にアラインする。

## 戻り値

確保したメモリ領域の先頭ポインタ。

## 例外

要求されたアライメントで`bytes`のメモリ領域を確保できない場合、例外を送出する。

## バージョン

### 言語

- C++17

### 処理系

- Clang: ??
- GCC: 9.1 ✅
- Visual C++: 2017 update 6 ✅

## 関連項目

- `do_deallocate`
- `allocate`

## 参照

- LWG Issue 2843. Unclear behavior of `std::pmr::memory_resource::do_allocate()`