通过一维 array_view 重新定义数组,这可能具有和源数组不同的值类型。
template <
typename _Value_type2
>
array_view<_Value_type2,1> reinterpret_as()restrict(amp,cpu);
template <
typename _Value_type2
>
array_view<const _Value_type2,1> reinterpret_as() const restrict(amp,cpu);
参数
- _Value_type2
返回的数据的数据类型。
返回值
array_view 或基于 array 的常量 array_view 对象,元素类型从 T 重新解释为 ElementType,并且级别从 N 减少至 1。
备注
有时将多维数组视作线性、一维数组很方便,这可能可以使值类型不同于源数组。 您可使用此方法来实现。
警告
通过使用不同值类型重复定义数组对象可能是不安全的操作。我们建议您谨慎使用此功能。
以下代码提供了一个示例。
struct RGB { float r; float g; float b; };
array<RGB,3> a = ...;
array_view<float,1> v = a.reinterpret_as<float>();
assert(v.extent == 3*a.extent);
要求
**标头:**amp.h
命名空间: 并发