最終更新日時:
が更新

履歴 編集

function
<simd>

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

constexpr basic_vec operator~() const noexcept;

概要

各要素をビット反転する。要素型Tが整数型である場合にのみ使用できる。

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

value_typeの値aに対して式~aが有効であること。

戻り値

各要素ii0からsize() - 1まで)を~(*this)[i]としたbasic_vecオブジェクトを返す。

例外

投げない

#include <simd>
#include <print>
#include <cstdint>

namespace simd = std::simd;

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

  // 各要素をビット反転する
  simd::vec<std::uint8_t, 4> b = ~a;  // {0xff, 0xfe, 0xfd, 0xfc}

  for (int i = 0; i < b.size(); ++i) {
    std::println("{:08b} -> {:08b}", a[i], b[i]);
  }
}

出力

00000000 -> 11111111
00000001 -> 11111110
00000010 -> 11111101
00000011 -> 11111100

バージョン

言語

  • C++26

処理系

関連項目

参照