Scroll to navigation

std::experimental::simd_abi::fixed_size(3) C++ Standard Libary std::experimental::simd_abi::fixed_size(3)

NAME

std::experimental::simd_abi::fixed_size - std::experimental::simd_abi::fixed_size

Synopsis


Defined in header <experimental/simd>
template < int N > (parallelism TS v2)
struct fixed_size {};


The simd_abi::fixed_size<N> tag type ensures data-parallel types to store and
manipulate N elements (i.e. simd<T, simd_abi::fixed_size<N>>::size() returns N). An
implementation shall support at least all N ∈ [1 … 32]. Additionally, for every
supported simd<T, Abi>, where Abi is an implementation-defined ABI tag, N = simd<T,
Abi>::size() shall be supported.

Notes


An implementation may choose to forego ABI compatibility between differently
compiled translation units for simd and simd_mask instantiations using the same
simd_abi::fixed_size<N> tag. Otherwise, the efficiency of simd<T, Abi> is likely to
be better than simd<T, fixed_size<simd_size_v<T, Abi>>> (with Abi not an instance of
simd_abi::fixed_size).

See also


max_fixed_size the maximum number of elements guaranteed to be supported by
(parallelism TS v2) fixed
(constant)
scalar tag type for storing a single element
(parallelism TS v2) (typedef)
compatible tag type that ensures ABI compatibility
(parallelism TS v2) (alias template)
native tag type that is most efficient
(parallelism TS v2) (alias template)
deduce obtains an ABI type for given element type and number of
deduce_t elements
(parallelism TS v2) (class template)

2022.07.31 http://cppreference.com