std::experimental::simd<T,Abi>::copy_to
来自cppreference.com
< cpp | experimental | simd | simd
template< class U, class Flags > void copy_to( U* mem, Flags flags ); |
(并行 TS v2) | |
存储函数复制 simd 中的所有元素,使得对于范围 [
0,
size()
)
中的所有 i,第 i 个元素被转换为 U
随后写入 mem[i]。
参数
mem | - | 指向数组的指针,其中 [ mem, mem + size()) 为有效范围
|
flags | - | 如果为类型 vector_aligned_tag,则加载构造函数可能假设 mem 指向按 memory_alignment_v<simd, U> 对齐的存储 |
类型要求 | ||
-U 必须为可向量化类型。
| ||
-is_simd_flag_type_v<Flags> 必须为 true。
|
示例
运行此代码
#include <experimental/simd> #include <iostream> namespace stdx = std::experimental; int main() { alignas(stdx::memory_alignment_v<stdx::native_simd<int>>) std::array<int, stdx::native_simd<int>::size()> mem = {}; stdx::native_simd<int> a = 7; a.copy_to(&mem[0], stdx::vector_aligned); for (int e : mem) std::cout << e << ' '; std::cout << '\n'; }
可能的输出:
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
参阅
(并行 TS v2) |
指示元素对齐的标签类型 (类) |
(并行 TS v2) |
指示向量类型对齐的标签类型 (类) |
(并行 TS v2) |
指示实参的加载/存储地址按照指定的对齐进行对齐 (类模板) |
(并行 TS v2) |
获得 vector_aligned 的适当对齐 (类模板) |
(并行 TS v2) |
从连续内存加载 simd 元素 (公开成员函数) |