最終更新日時:
が更新

履歴 編集

function
<simd>

std::simd::basic_vec::operator<(C++26)

friend constexpr mask_type operator<(const basic_vec& lhs,
                                     const basic_vec& rhs) noexcept;

概要

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, false, false}

  for (int i = 0; i < m.size(); ++i) {
    std::print("{} ", m[i]);
  }
  std::println("");
}

出力

true true false false 

バージョン

言語

  • C++26

処理系

関連項目

参照