最終更新日時: 2024年12月22日 16時03分05秒 (JST)
yoh が更新

履歴 編集

class template
<mdspan>

# std::aligned_accessor(C++26)

    namespace std {
      template<class ElementType, size_t ByteAlignment>
      class aligned_accessor;
    }

## 概要

`aligned_accessor`は、多次元配列ビュー`mdspan`を介した要素アクセスにおいて、メモリアドレスに対するアライメント保証を与える。それ以外の動作は`default_accessor`と等価である。

`ElementType`は抽象クラス型もしくは配列型のいずれでもない完全型であること。

`aligned_accessor`はトリビアルコピー可能であり、`semiregular`のモデルである。

`aligned_accessor`はアクセサポリシー要件を満たす。

## 適格要件

- `ByteAlignment`は2のべき乗であること
- `ByteAlignment >= alignof(ElementType)`

## メンバ変数

名前 | 説明 | 対応バージョン
--- | --- | ---
`static constexpr size_t byte_alignment` | `ByteAlignment` | C++26

## メンバ関数

名前 | 説明 | 対応バージョン
--- | --- | ---
`(constructor)` | コンストラクタ | C++26
`(destructor)` | デストラクタ | C++26
`operator default_accessor` | `default_accessor`型への変換演算子 | C++26
`access` | 指定オフセット位置にある要素へアクセスする | C++26
`offset` | 指定オフセット位置のハンドルを取得する | C++26

## メンバ型

名前 | 説明 | 対応バージョン
--- | --- | ---
`offset_policy` | `default_accessor<ElementType>` | C++26
`element_type` | `ElementType` | C++26
`reference` | `ElementType&` | C++26
`data_handle_type` | `ElementType*` | C++26

## バージョン

### 言語

- C++26

### 処理系

- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??

## 関連項目

- `mdspan`
- `default_accessor`

## 参照

- P2897R7 `aligned_accessor`: An mdspan accessor expressing pointer over-alignment