小编Joh*_*n M的帖子

为什么span的array和std :: array构造函数与其容器构造函数不同

我一直在研究std::span在Godbolt上使用clang干线和libc ++ 的最新规范,并发现一些令人困惑的构造函数。

特别是,我从一个普通的旧数组中发现了构造函数,并且a std::array与其他容器不同。

例如,以下代码似乎可以编译:

std::vector<int*> v = {nullptr, nullptr};
std::span<const int* const> s{v};
Run Code Online (Sandbox Code Playgroud)

但是,这不是:

std::array<int*, 2> a = {nullptr, nullptr}; 
std::span<const int* const> s{a};
Run Code Online (Sandbox Code Playgroud)

这似乎与cppreference.com上描述构造函数的方式保持一致,我只是在努力理解为什么是这种情况。有人可以照亮吗?

c++ c++20 std-span

14
推荐指数
1
解决办法
323
查看次数

标签 统计

c++ ×1

c++20 ×1

std-span ×1