std::is_sufficiently_aligned
From cppreference.com
| ヘッダ <memory> で定義 |
||
| template< std::size_t N, class T > bool is_sufficiently_aligned( T* ptr ); |
(C++26以降) | |
ポインタptrが、アライメント値がN以上であるオブジェクトを指しているかどうかをチェックします。
ptrが、型Tのオブジェクト(すべてのレベルでcv-修飾を無視する)を指していない場合、未定義の動作となります。
目次 |
[編集] 戻り値
true: ptrがアライメントがN以上であるオブジェクトを指している場合。それ以外の場合はfalse。
[編集] 例外
何もスローしません。
[編集] 注記
std::is_sufficiently_alignedは、std::assume_alignedの前提条件として使用できます。
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_is_sufficiently_aligned |
202411L |
(C++26) | std::is_sufficiently_aligned
|
[編集] 可能な実装
template<std::size_t N, class T> bool is_sufficiently_aligned(T* ptr) { return std::bit_cast<std::uintptr_t>(ptr) % N == 0; } |
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
alignof (C++11) |
型のアライメント要件を問い合わせる (演算子) |
alignas (C++11) |
変数用のストレージを特定の量でアラインすることを指定します。 (指定子) |
| (C++11以降)(C++23で非推奨) |
与えられたサイズの型の未初期化ストレージとして使用するのに適した型を定義する (クラステンプレート) |
| (C++11) |
バッファ内のポインタをアラインします (関数) |
| (C++26) |
mdspan の要素へのアラインメントされたアクセスのための型(class template) |