最終更新日時:
が更新

履歴 編集

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);       // {false, false, false, true}

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

出力

false false false true 

バージョン

言語

  • C++26

処理系

関連項目

参照