std::is_sufficiently_aligned
來自 cppreference.com
定義於標頭檔案 <memory> |
||
template< std::size_t N, class T > bool is_sufficiently_aligned( T* ptr ); |
(C++26 起) | |
檢查指標 ptr 所指向的物件的對齊值是否至少為 N。
如果 ptr 不指向 T
型別的物件(忽略所有級別的 cv 限定符),則行為未定義。
目錄 |
[編輯] 返回值
如果 ptr 指向的物件的對齊值至少為 N,則為 true;否則為 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 元素進行對齊訪問的型別(類模板) |