- simd[meta header]
- std::simd[meta namespace]
- basic_vec[meta class]
- function[meta id-type]
- cpp26[meta cpp]
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]);
}
}- ~a[color ff0000]
- simd::vec[link ../basic_vec.md]
- b.size()[link size.md]
- b[i][link op_at.md]
00000000 -> 11111111
00000001 -> 11111110
00000010 -> 11111101
00000011 -> 11111100
- C++26
- Clang: 22 [mark noimpl]
- GCC: 16.1 [mark noimpl]
- Visual C++: 2026 Update 2 [mark noimpl]