std::experimental::simd_abi::deduce

来自cppreference.com
< cpp‎ | experimental‎ | simd
 
 
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
 
 
 
在标头 <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==1DAsimd_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)
最有效率的标签类型
(别名模板)