std::span 中 std::dynamic_extent 的用途是什么

cod*_*her 4 c++ std std-span

我知道std::span是静态的。它只是一堆向量/数组/等的视图。元素。

我看到span的构造函数,好像std::dynamic_extent是在4-6中使用的。但在这些构造函数中,大小有一个必需的模板参数 - std::size_t N。对我来说,这意味着大小/计数/长度在编译时是已知的。那么到底是什么std::dynamic_extent

Bri*_*ian 5

的定义std::dynamic_extent

inline constexpr std::size_t dynamic_extent 
    = std::numeric_limits<std::size_t>::max();
Run Code Online (Sandbox Code Playgroud)

它是 a 的一个特殊值,std::size_t用于指示 具有std::span动态范围。

大小有一个必需的模板参数 - std::size_t N。对我来说,这意味着大小/计数/长度在编译时是已知的。

的“大小”std::span仍然在编译时指定,只是当“大小”采用该特殊值时,它被视为动态范围。