std::experimental::simd_cast, std::experimental::static_simd_cast

< cpp‎ | experimental‎ | simd
定义于头文件 <experimental/simd>
template < class T, class Abi >

fixed_size_simd<T, simd_size_v<T, Abi>>

to_fixed_size( const simd<T, Abi>& v ) noexcept;
(1) (并行 TS v2)
template < class T, class Abi >

fixed_size_simd_mask<T, simd_size_v<T, Abi>>

to_fixed_size( const simd_mask<T, Abi>& v ) noexcept;
(2) (并行 TS v2)
template < class T, std::size_t N >

native_simd<T>

to_native( const fixed_size_simd<T, N>& v ) noexcept;
(3) (并行 TS v2)
template < class T, std::size_t N >

native_simd_mask<T>

to_native( const fixed_size_simd_mask<T, N>>& v ) noexcept;
(4) (并行 TS v2)
template < class T, std::size_t N >

simd<T>

to_compatible( const fixed_size_simd<T, N>& v ) noexcept;
(5) (并行 TS v2)
template < class T, std::size_t N >

simd_mask<T>

to_compatible( const fixed_size_simd_mask<T, N>& v ) noexcept;
(6) (并行 TS v2)

返回有相同元素但有不同 ABI 的 simd 或 simd_mask 对象。

3-6) 这些函数仅若 N 与返回类型的大小相同才参与重载决议。

参数

v - 输入的 simd 或 simd_mask 对象

返回值

拥有指定 ABI 的 simd 或 simd_mask 对象。

示例