最終更新日時:
が更新

履歴 編集

function
<simd>

std::simd::basic_mask::operator-(C++26)

constexpr /*see below*/ operator-() const noexcept;

概要

各要素をbasic_vecへ変換したうえで、単項マイナス演算を適用する。

戻り値

各要素i0以上size()未満)が-operator[](i)で初期化された、basic_vecのオブジェクトを返す。各要素のbool値は整数へ変換されたうえで単項マイナス演算が適用される。

例外

投げない。

備考

戻り値型は、sizeof(I) == Bytesとなる符号付き整数型Iが存在する場合、要素型がそのような符号付き整数型で要素数がsize()と等しい、有効なbasic_vecの特殊化Rとなる。そのような符号付き整数型が存在しない場合、この演算子はdelete定義され、戻り値型は未規定である。

#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>::mask_type m = (a < 2);        // {true, true, false, false}

  auto r = -m;                                   // {-1, -1, 0, 0}

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

出力

-1 -1 0 0 

バージョン

言語

  • C++26

処理系

関連項目

参照