Namespaces
Variants

std::experimental::simd_abi:: deduce

From cppreference.net
Definido en el encabezado <experimental/simd>
template < class T, std:: size_t N, class ... Abis >
struct deduce ;
(parallelism TS v2)

El tipo deduce < T, N, Abis... > :: type está presente si y solo si:

  • T es un tipo vectorizable,
  • simd_abi :: fixed_size < N > está soportado, y
  • cada tipo en Abis... es una etiqueta ABI.

Sea DA denotar deduce < T, N, Abis... > :: type cuando esté presente, entonces

  • simd_size_v < T, DA > == N ,
  • simd < T, DA > es construible por defecto, es decir, está soportado,
  • DA es simd_abi::scalar si N == 1 , de lo contrario está definido por la implementación.

Contenidos

Tipos de miembros

Nombre Definición
type un tipo de etiqueta ABI adecuado para el tipo de elemento especificado T y tamaño N

Tipos auxiliares

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

Notas

simd_abi::deduce es compatible con SFINAE.

La etiqueta ABI deducida mediante esta facilidad es una característica de Calidad-de-Implementación. Las implementaciones pueden basar la elección en Abis... , pero también pueden ignorar los Abis... argumentos. Una implementación simple podría simplemente retornar fixed_size < N > incondicionalmente. Una implementación optimizada podría retornar una etiqueta ABI extendida definida por la implementación para la mayoría de las entradas. En consecuencia, si necesita una etiqueta ABI para un cierto número de elementos, use fixed_size si la estabilidad ABI es de preocupación, y prefiera deduce_t en caso contrario.

Ejemplo

Véase también

(parallelism TS v2)
tipo de etiqueta para almacenar un solo elemento
(typedef)
(parallelism TS v2)
tipo de etiqueta para almacenar un número especificado de elementos
(alias template)
(parallelism TS v2)
tipo de etiqueta que garantiza compatibilidad ABI
(alias template)
(parallelism TS v2)
tipo de etiqueta que es más eficiente
(alias template)