std::experimental::is_simd, std::experimental::is_simd_mask

来自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 >
struct is_simd;
(1) (并行 TS v2)
template< class T >
struct is_simd_mask;
(2) (并行 TS v2)
1)Tsimd 类模板的特化,则提供等于 true 的成员常量 value 。对于任何其他类型, valuefalse
2)Tsimd_mask 类模板的特化,则提供等于 true 的成员常量 value 。对于任何其他类型, valuefalse

模板形参

T - 要检查的类型

辅助变量模板

template< class T >
inline constexpr bool is_simd_v = is_simd<T>::value;
(并行 TS v2)
template< class T >
inline constexpr bool is_simd_mask_v = is_simd_mask<T>::value;
(并行 TS v2)

继承自 std::integral_constant

成员常量

value
[静态]
如果 Tsimd/simd_mask 类型那么是 true,否则是 false
(公开静态成员常量)

成员函数

operator bool
将对象转换到 bool,返回 value
(公开成员函数)
operator()
(C++14)
返回 value
(公开成员函数)

成员类型

类型 定义
value_type bool
type std::integral_constant<bool, value>

示例

#include <experimental/simd>
#include <iostream>
 
int main() 
{
    namespace stdx = std::experimental;
    std::cout
    << std::boolalpha
    << stdx::is_simd_v<stdx::simd<float>> << '\n';
    << stdx::is_simd_v<int> << '\n';
    << stdx::is_simd_mask_v<stdx::simd_mask<float>> << '\n';
    << stdx::is_simd_mask_v<int> << '\n';
}

输出:

true
false
true
false

参阅

(并行 TS v2)
检查类型是否为 simd_mask 类型
(类模板)