constexpr basic_vec operator~() const noexcept;
概要
各要素をビット反転する。要素型Tが整数型である場合にのみ使用できる。
テンプレートパラメータ制約
value_typeの値aに対して式~aが有効であること。
戻り値
各要素i(iは0から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
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌