std::experimental::simd_abi::deduce
来自cppreference.com
< cpp | experimental | simd
在标头 <experimental/simd> 定义
|
||
template < class T, std::size_t N, class ...Abis > struct deduce; |
(并行 TS v2) | |
类型 deduce<T, N, Abis...>::type 当且仅当符合下列条件才存在:
- T 是可向量化的类型,且
- simd_abi::fixed_size<N> 得到支持,且
- Abis... 中的每个元素均为 ABI 标签
当 deduce<T, N, Abis...>::type 存在时以 DA
指代它,则
- 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; |
(并行 TS v2) | |
注解
simd_abi::deduce
对 SFINAE 友好。
通过此设施推导的 ABI 标签是实现质量特性。简单的实现可以简单地返回 fixed_size<N> 。优化的实现可以对大多数输入返回实现定义的扩展 ABI 标签。从而若你需要给定元素数的 ABI 标签,就使用 fixed_size
,否则更应该用 deduce_t
。
示例
本节未完成 原因:暂无示例 |
参阅
(并行 TS v2) |
存储单个元素的标签类型 (typedef) |
(并行 TS v2) |
存储指定数量元素的标签类型 (别名模板) |
(并行 TS v2) |
确保 ABI 兼容性的标签类型 (别名模板) |
(并行 TS v2) |
最有效率的标签类型 (别名模板) |