std::experimental::simd_abi::fixed_size - cppreference.com (original) (raw)

| | | | | ----------------------------------------- | | ------------------- | | 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.

[edit] 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).

[edit] Example

[edit] See also

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