Skip to content

Support for std::byte #39

@someonewithpc

Description

@someonewithpc
version / revision Operating System Compiler & Version Compiler Flags CPU
? Linux gcc 13.2.1 20230801 None N/A

Testcase

#include <experimental/simd>
#include <cstddef>

int main() {
  std::experimental::native_simd<std::byte> s;
}

Actual Results

$ g++ byte.cpp
In file included from /usr/include/c++/13.2.1/experimental/simd:74,
                 from byte.cpp:1:
/usr/include/c++/13.2.1/experimental/bits/simd.h: In substitution of ‘template<class _Tp> using std::experimental::parallelism_v2::native_simd = std::experimental::parallelism_v2::simd<_Tp, std::experimental::parallelism_v2::simd_abi::native<_Tp> > [with _Tp = std::byte]’:
byte.cpp:5:43:   required from here
/usr/include/c++/13.2.1/experimental/bits/simd.h:3018:9: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
 3018 |   using native_simd = simd<_Tp, simd_abi::native<_Tp>>;
      |         ^~~~~~~~~~~

Expected Results

Compiles with support for the same operators as std::byte

Let me know if you think this is a direction worth taking and I can write a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions