Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 1.82 KB

File metadata and controls

65 lines (47 loc) · 1.82 KB

alignment

  • simd[meta header]
  • std::simd[meta namespace]
  • class template[meta id-type]
  • cpp26[meta cpp]
namespace std::simd {
  template<class T, class U = typename T::value_type>
  struct alignment { /*see below*/ };

  template<class T, class U = typename T::value_type>
  constexpr std::size_t alignment_v = alignment<T, U>::value;
}

概要

alignmentは、データ並列型Tbasic_vecまたはbasic_mask)を、要素型Uの配列に対してアライメント済みで読み込み/書き込むために必要な、メモリ先頭のアライメント(バイト数)を取得する型特性である。

flag_alignedを指定して読み込み/書き込む場合、メモリ先頭はこのalignment_v<T, U>バイト境界にアライメントされていなければならない。

メンバ定数valueは、Tがデータ並列型であり、要素型Uとの間で(変換)読み込み/書き込みが可能な場合にのみ存在する。

#include <simd>
#include <print>

namespace simd = std::simd;

int main()
{
  using V = simd::vec<float, 4>;

  std::println("{}", simd::alignment_v<V>);
}
  • simd::vec[link basic_vec.md]
  • simd::alignment_v[color ff0000]

出力例

16

バージョン

言語

  • C++26

処理系

関連項目

参照