std::experimental::simd_abi:: deduce
|
定义于头文件
<experimental/simd>
|
||
|
template
<
class
T,
std::
size_t
N,
class
...
Abis
>
struct deduce ; |
(并行技术规范 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 > 可默认构造,即受支持,
-
若
N
==
1
,则
DA为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 ; |
(并行技术规范 v2) | |
注释
simd_abi::deduce
是 SFINAE 友好的。
通过此机制推导出的ABI标签属于实现质量特性。
实现可以基于
Abis...
进行选择,但也可以忽略
Abis...
参数。简单实现可能直接无条件返回
fixed_size
<
N
>
。优化实现可能对大多数输入返回实现定义的扩展ABI标签。因此,若需要特定元素数量的ABI标签,当关注ABI稳定性时请使用
fixed_size
,否则建议使用
deduce_t
。
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
(parallelism TS v2)
|
用于存储单个元素的标签类型
(类型别名) |
|
(parallelism TS v2)
|
用于存储指定数量元素的标签类型
(别名模板) |
|
(parallelism TS v2)
|
确保ABI兼容性的标签类型
(别名模板) |
|
(parallelism TS v2)
|
最高效的标签类型
(别名模板) |