You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何无法从二维C数组构造std::mdspan?

关于std::mdspan无法从二维C数组构造的问题

以下代码无法通过编译:

void fn(std::span<int> ) {}

int main() {
    int arr[4][5]{}};
    fn(arr[0]);
    std::mdspan msp(arr);
}

问题出在std::mdspan无法直接从二维C数组构造。这是标准有意设计的行为,其推导指引中明确限定:

requires(std::is_array_v<CArray> && std::rank_v<CArray> == 1)

但这种设计存在反直觉的地方。实际开发中,我们经常会持有固定大小的二维数组,希望将其传递给支持任意二维mdspan的泛型函数,这种使用场景应该得到支持。

内容的提问来源于stack exchange,提问作者NoSenseEtAl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:45:53