std::experimental::simd_abi::deduce
From cppreference.com
< cpp | experimental | simd
| ヘッダー <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は、N == 1 の場合はsimd_abi::scalarであり、それ以外の場合は実装定義です。
目次 |
[編集] メンバ型
| 名前 | 定義 |
type
|
指定された要素型 T およびサイズ N に適した ABI タグ型。 |
[編集] ヘルパー型
| template< class T, std::size_t N, class ...Abis > using deduce_t = typename deduce<T, N, Abis...>::type; |
(parallelism TS v2) | |
[編集] 注記
simd_abi::deduce は SFINAE フレンドリーです。
この機能を通じて推論される ABI タグは、実装品質(Quality-of-Implementation)の機能です。実装は Abis... に基づいて選択できますが、Abis... 引数を無視することもできます。単純な実装では、無条件に fixed_size<N> を返すことがあります。最適化された実装では、ほとんどの入力に対して実装定義の拡張 ABI タグを返すことがあります。したがって、特定の要素数に対する ABI タグが必要な場合は、ABI の安定性が懸念される場合は fixed_size を使用し、それ以外の場合は deduce_t を優先してください。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| (parallelism TS v2) |
単一の要素を格納するためのタグ型 (typedef) |
| (parallelism TS v2) |
指定された数の要素を格納するためのタグ型 (エイリアステンプレート) |
| (parallelism TS v2) |
ABI互換性を保証するタグ型 (エイリアステンプレート) |
| (parallelism TS v2) |
最も効率的なタグ型 (エイリアステンプレート) |