Skip to content

Latest commit

 

History

History
77 lines (58 loc) · 2.27 KB

File metadata and controls

77 lines (58 loc) · 2.27 KB

operator<=

  • simd[meta header]
  • std::simd[meta namespace]
  • basic_vec[meta class]
  • function[meta id-type]
  • cpp26[meta cpp]
friend constexpr mask_type operator<=(const basic_vec& lhs,
                                      const basic_vec& rhs) noexcept;
  • operator<=[color ff0000]
  • mask_type[link ../basic_mask.md]

概要

2つのbasic_vecを要素ごとに比較し、lhsの各要素がrhsの対応する要素以下かどうかを判定する。

比較結果はboolではなく、要素ごとの比較結果を保持するマスク型mask_typebasic_mask)として返される。

テンプレートパラメータ制約

a <= babvalue_type型の値)が有効であること。

戻り値

lhsrhsの対応する要素それぞれに<=を適用した結果で初期化されたmask_typeオブジェクトを返す。すなわち、戻り値のマスクのi番目の要素はlhs[i] <= rhs[i]となる。

備考

Hidden friendsとして定義されるため、引数依存の名前探索 (ADL) でのみ発見される。

#include <simd>
#include <print>

namespace simd = std::simd;

int main()
{
  simd::vec<int, 4> a = [](int i) { return i; };  // {0, 1, 2, 3}
  simd::vec<int, 4> b = 2;                        // {2, 2, 2, 2}

  // 要素ごとに「以下」を判定する。結果はマスクとして得られる
  simd::vec<int, 4>::mask_type m = (a <= b);      // {true, true, true, false}

  for (int i = 0; i < m.size(); ++i) {
    std::print("{} ", m[i]);
  }
  std::println("");
}
  • simd::vec[link ../basic_vec.md]
  • m.size()[link ../basic_mask/size.md]
  • m[i][link ../basic_mask/op_at.md]

出力

true true true false 

バージョン

言語

  • C++26

処理系

関連項目

参照