最終更新日時:
が更新

履歴 編集

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を要素ごとに等値比較する。

比較結果は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, true, false}

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

出力

false false true false 

バージョン

言語

  • C++26

処理系

関連項目

参照