15 #include <type_traits> 31 template <
typename simd_t>
32 SEQAN3_CONCEPT Simd = requires (simd_t a, simd_t b)
34 typename simd_traits<simd_t>::scalar_type;
35 typename simd_traits<simd_t>::mask_type;
36 typename simd_traits<simd_t>::swizzle_type;
43 { a[0] } ->
typename simd_traits<simd_t>::scalar_type;
55 requires
std::Same<decltype(a - b), simd_t>;
57 requires
std::Same<decltype(a / b), simd_t>;
59 requires
std::Same<decltype(a -= b), simd_t &>;
61 requires
std::Same<decltype(a /= b), simd_t &>;
86 template <
typename simd_t>
88 SEQAN3_CONCEPT Simd = !std::is_pointer_v<std::decay_t<simd_t>> && detail::Simd<simd_t>;
Provides seqan3::simd::simd_traits.
The main SeqAn3 namespace.
The concept Integral is satisfied if and only if T is an integral type.
The concept std::Same<T, U> is satisfied if and only if T and U denote the same type.
Definition: aligned_sequence_concept.hpp:35