Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::experi..._abi::deduce(3) C++ Standard Libarystd::experi..._abi::deduce(3)

NAME
       std::experimental::simd_abi::deduce  - std::experimental::simd_abi::de-
       duce

Synopsis
	  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:

	    * T	is 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, then

	    * simd_size_v<T, DA> == N,
	    * simd<T, DA> is default constructible, i.e. it is supported,
	    *  DA  is  simd_abi::scalar	if N ==	1, otherwise it	is implementa-
       tion-defined.

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

Helper types
	  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	imple-
       mentation-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

See also
	  scalar	      tag type for storing a single element
	  (parallelism TS v2) (typedef)
	  fixed_size	       tag  type  for storing specified	number of ele-
       ments
	  (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

http://cppreference.com		  2024.06.10	 std::experi..._abi::deduce(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::simd_abi::deduce&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help