std::experi..._abi::deduce(3)
π NAME π
okay so bestie, welcome to the std::experi..._abi::deduce(3) page from the C++ Standard Libary manual π
this whole page is literally about std::experimental::simd_abi::deduce β and the NAME line is std::experimental::simd_abi::deduce followed by another std::experimental::simd_abi::deduce, because why not π.
πΈ Synopsis πΈ
hereβs the header + template situation, exact:
Defined in header <experimental/simd>
template< class T, std::size_t N, class ...Abis > (parallelism TS v2)
struct deduce;
The type deduce<T, N, Abis...>::type is present if and only if:
Tis a vectorizable type,simd_abi::fixed_size<N>is supported, and- every type in
Abis...is an ABI tag.
Let DA denote deduce<T, N, Abis...>::type when it presents β yes, βpresentsβ β then:
simd_size_v<T, DA> == N,simd<T, DA>is default constructible, i.e. it is supported,DAissimd_abi::scalarifN == 1, otherwise it is implementation-defined.
π Member types π
one-row table realness:
- Name:
type - Definition: an ABI tag type suitable for specified element type
Tand sizeN
π¦ Helper types π¦
the helper alias, exactly as promised:
template< class T, std::size_t N, class ...Abis > (parallelism TS v2)
using deduce_t = typename deduce<T, N, Abis...>::type;
π Notes π
simd_abi::deduce is SFINAE-friendly. β¨
The ABI tag deduced via this facility is a Quality-of-Implementation feature. Implementations can base the choice on Abis..., but can also ignore the Abis... arguments. A simple implementation might simply return fixed_size<N> unconditionally. An optimized implementation might return an implementation-defined extended ABI tag for most inputs. Consequently, if you need an ABI tag for a certain number of elements, use fixed_size if ABI stability is of concern, and prefer deduce_t otherwise.
π Example π
This section is incomplete Reason: no example
not me arriving with no example ππ.
π See also π
scalarβ tag type for storing a single element (parallelism TS v2) (typedef)fixed_sizeβ tag type for storing specified number of elements (parallelism TS v2) (alias template)compatibleβ tag type that ensures ABI compatibility (parallelism TS v2) (alias template)nativeβ tag type that is most efficient (parallelism TS v2) (alias template)
π Category π
- Todo no example
byeee bestie, this page is from http://cppreference.com, date/version 2024.06.10, and itβs the std::experi..._abi::deduce(3) page β mwah ππ
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms