我知道 std::span 是静态的。它只是一堆向量/数组等的视图。 我看到 span 的 constructor ,似乎在 4-6 中使用了 std::dynamic_extent 。但在这些构造函数中,还存在所需的大小模板 - std::size_ N。对我来说,这意味着 size/count/len 在编译时已知。那么为什么 std::dynamic_extent 呢?
std::dynamic_extent
是
inline constexpr std::size_t dynamic_extent
= std::numeric_limits<std::size_t>::max();
它只是
std::size_t
的一个值,用于指示 std::span
具有动态范围。 std::span
的“大小”仍然是在编译时指定的,只是当“大小”取特殊值时,它被视为动态范围。