Sim*_*lex 1 c++ std c++-experimental mdspan
令人兴奋的 的存储库mdspan是为 C++ 标准库建议的多维类似物std::span,现在还包含密切相关的 的参考实现mdarray,与mdspan拥有其数据不同。
但是,尽管该submdspan函数可以生成 的子集mdspan,但我找不到 的类似物mdarray。submdspan我期待的是一个行为与返回完全相同的函数mdspan,但它对 进行操作mdarray。
这是有计划但尚未实施吗?如果没有,为什么不呢?
编辑:
我已经用自制解决方案暂时解决了这个问题,其形式是重载submdspan,mdarray然后创建一个映射mdspan到整个 的临时文件mdarray,并调用submdspan它。
现在它可以完成工作了!但我不确定这是否涵盖了所有可能的情况mdarray,因为目前几乎没有文档。仍然希望得到原来问题的答案。
template <class ElementType, class Extents, class LayoutPolicy, class... SliceSpecs>
auto submdspan(
mdarray<ElementType, Extents, LayoutPolicy> &arr,
SliceSpecs... slices)
{
return submdspan(
mdspan<ElementType, Extents, LayoutPolicy>(arr.data(), arr.mapping()),
slices...);
}
Run Code Online (Sandbox Code Playgroud)
小智 6
只是随机遇到了这一点:因为我是所有相关事物(mdspan、、和参考实现)的主要作者/维护者,是的,我们可以添加这一点mdarray。submdspan我这样做的方法实际上是调用 的“to_mdspan”函数mdarray,并调用 submdspan :
auto sub = submdspan(mda.to_mdspan(), slice_specifiers...);
Run Code Online (Sandbox Code Playgroud)
为了使这两个提案独立,我将暂时将其分开(除非 LEWG 另有说明)并编写一篇后续论文,该论文仅添加一个重载,将submdspan上述内容转发到采用mdspan.
但一般来说:您可以在存储库上打开一个问题来询问提案问题。
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |