在他的C++ Core Guidelines , Bjarne Stroustrup 建议在按引用传递数组时使用 span。为什么不只传递一个 std::array 对象?
最佳答案
按值传递
std::array
将是复制它们。gsl::span
的要点是采用它们的函数引用现有的数据数组。gsl::span
能够获取运行时定义大小的数组。std::array
在编译时固定。gsl::span
不关心什么类型拥有数组;它只是一个指针+大小。因此,基于span
的接口(interface)可以从std::vector
、QVector
和许多其他类型中获取数据。基于std::array
的接口(interface)要求您使用该特定容器。
关于c++ - 传递 span<T> 和 std::array 作为参数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41512690/