std::experimental::simd_abi::fixed_size

From cppreference.com
< cpp‎ | experimental‎ | simd
 
 
Technical specifications
Filesystem library (filesystem TS)
Library fundamentals (library fundamentals TS)
Library fundamentals 2 (library fundamentals TS v2)
Library fundamentals 3 (library fundamentals TS v3)
Extensions for parallelism (parallelism TS)
Extensions for parallelism 2 (parallelism TS v2)
Extensions for concurrency (concurrency TS)
Extensions for concurrency 2 (concurrency TS v2)
Concepts (concepts TS)
Ranges (ranges TS)
Reflection (reflection TS)
Mathematical special functions (special functions TR)
 
 
 
Defined in header <experimental/simd>
template < int N >
struct fixed_size {};
(parallelism TS v2)

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

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