std::experimental:: simd_cast, std::experimental:: static_simd_cast
|
定义于头文件
<experimental/simd>
|
||
|
template
<
class
V,
class
T,
class
Abi
>
/*详见下文*/ simd_cast ( const simd < T, Abi > & v ) noexcept ; |
(1) | (并行TS v2) |
|
template
<
class
V,
class
T,
class
Abi
>
/*详见下文*/ static_simd_cast ( const simd < T, Abi > & v ) noexcept ; |
(2) | (并行TS v2) |
将simd对象转换为另一个simd对象。若V为T类型,返回 simd < T, Abi > ;否则,若V为标量类型,返回 simd < V, simd_abi :: fixed_size < simd < T, Abi > :: size ( ) >> 。否则V必须是simd类型,函数将返回V。
- 输入元素的每个可能值都能用输出元素表示,
- 要么 is_simd_v < V > 为 false,要么 V :: size ( ) 等于 simd < T, Abi > :: size ( ) 。
目录 |
参数
| v | - | 输入的simd对象 |
返回值
一个simd对象,其中第i个元素初始化为 static_cast < To > ( v [ i ] ) ,其中To是指定的输出元素类型。
注释
TS规范缺少针对 simd_mask 的 simd_cast 和 static_simd_cast 重载。libstdc++实现在 std :: experimental :: __proposed 命名空间中提供了缺失的重载。如果您已使用
namespace stdx = std::experimental;
作为快捷方式,您可能会感兴趣使用
namespace stdx { using namespace std::experimental; using namespace std::experimental::__proposed; }
作为替代方案,libstdc++ 在 simd_mask 中实现了一个 __cvt ( ) 成员函数,该函数允许对掩码进行隐式转换。另请参阅: https://github.com/VcDevel/std-simd/issues/41
示例
|
本节内容不完整
原因:缺少示例 |