访问 Visual C++ mdspan 实现中的元素

问题描述 投票:0回答:1

我一直在屏息等待微软发布他们的 C++23 std::mdspan 实现。它今天在 V19 Preview 1 中发布。我正在尝试尝试,但似乎不起作用。这是我的代码:

    std::vector<double> Bdat(dfcts.ndf * vbs.nvb);     // allocate the space
    using Dext = std::dextents<size_t, 2>;
    std::mdspan<double, Dext> B{ Bdat.data(), dfcts.ndf, vbs.nvb};    // create the mdspan
    B[0, 0] = 1.0;

最后一行给出了一个错误:“没有运算符“[]”与这些操作数匹配。请告诉我我犯了一个明显的语法错误。我真的不想听到我可以创建一个 mdspan 但不能使用它。

c++ visual-c++ c++23 mdspan
1个回答
6
投票

MSVC 目前不支持多维

operator[]
语言功能,在此发生之前,您可能需要使用另一个接受
array
span
的重载

B[std::array{0, 0}] = 1.0;
© www.soinside.com 2019 - 2024. All rights reserved.