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

The type deduce<T, N, Abis...>::type is present if and only if:

Let DA denote deduce<T, N, Abis...>::type when it presents, then

[edit] Member types

Name Definition
type an ABI tag type suitable for specified element type T and size N

[edit] Helper types

| template< class T, std::size_t N, class ...Abis > using deduce_t = typename deduce<T, N, Abis...>::type; | | (parallelism TS v2) | | ------------------------------------------------------------------------------------------------------------------------------------------ | | ------------------- |

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

[edit] Example

[edit] See also

| | tag type for storing a single element (typedef) [edit] | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | tag type for storing specified number of elements(alias template)[edit] | | | tag type that ensures ABI compatibility(alias template)[edit] | | | tag type that is most efficient(alias template)[edit] |