【发布时间】:2018-01-25 04:51:25
【问题描述】:
最近我收到了在我的代码中使用span<T> 的建议,或者在使用span 的网站上看到了一些答案——据说是某种容器。但是 - 我在 C++17 标准库中找不到类似的东西。
那么这个神秘的span<T> 是什么,如果它是非标准的,为什么(或何时)使用它是个好主意?
【问题讨论】:
-
std::span于2017年提出,适用于C++17或C++20。另见P0122R5, span: bounds-safe views for sequences of objects。您真的要针对该语言吗?编译器要赶上来还需要几年时间。 -
@jww:span 在 C++11 中非常有用...作为
gsl::span而不是std::span。另请参阅下面的答案。 -
也记录在 cppreference.com:en.cppreference.com/w/cpp/container/span
-
@KeithThompson:不是在 2017 年它不是......
-
@jww 所有编译器现在都在 C++20 模式下支持 std::span。并且跨度可从许多 3rd 方库中获得。你是对的 - 是几年:准确地说是 2 年。
标签: c++ c++20 c++-faq cpp-core-guidelines std-span