std:: is_sufficiently_aligned
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定義済みヘッダー
<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
の要素へのアラインされたアクセスのための型
(クラステンプレート) |