Namespaces
Variants

std::experimental::simd_abi:: deduce

From cppreference.net
ヘッダーで定義 <experimental/simd>
template < class T, std:: size_t N, class ... Abis >
struct deduce ;
(parallelism TS v2)

deduce < T, N, Abis... > :: type が存在する条件は以下の通りです:

  • T はベクトル化可能な型であり、
  • simd_abi :: fixed_size < N > がサポートされており、
  • Abis... 内のすべての型がABIタグである。

DA が存在する場合、 deduce < T, N, Abis... > :: type を表すものとする。

  • simd_size_v < T, DA > == N
  • simd < T, DA > はデフォルト構築可能、すなわちサポートされている、
  • DA simd_abi::scalar である( N == 1 の場合)、それ以外の場合は実装定義である。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の専門用語(Member types、Helper types、Notes、Example、See also)は原文のまま保持しました - HTMLタグ、属性、クラス名、IDなどは一切変更していません - 番号部分の書式も完全に保持しています

メンバー型

名前 定義
type 指定された要素型 T とサイズ N に適したABIタグ型

ヘルパー型

template < class T, std:: size_t N, class ... Abis >
using deduce_t = typename deduce < T, N, Abis... > :: type ;
(並列処理 TS v2)

注記

simd_abi::deduce はSFINAEフレンドリーです。

この機能によって導出されるABIタグは実装品質の機能です。実装は Abis... に基づいて選択を行うことができますが、 Abis... 引数を無視することもできます。単純な実装では、無条件に fixed_size < N > を返すかもしれません。最適化された実装では、ほとんどの入力に対して実装定義の拡張ABIタグを返す可能性があります。したがって、特定の要素数に対するABIタグが必要な場合、ABI安定性が懸念される場合は fixed_size を使用し、それ以外の場合は deduce_t を優先してください。

関連項目

(parallelism TS v2)
単一要素を格納するタグ型
(typedef)
(parallelism TS v2)
指定された数の要素を格納するタグ型
(alias template)
(parallelism TS v2)
ABI互換性を保証するタグ型
(alias template)
(parallelism TS v2)
最も効率的なタグ型
(alias template)