Namespaces
Variants
Views
Actions

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.

[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] See also

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