给定以下函数,采用:只读浮点跨度(动态或任何静态大小):
template <long N> void foobar(gsl::span<const float, N> x);
假设我有一个vector<float>
. 将其作为参数传递是行不通的,但 using 也不行gsl::as_span
:
std::vector<float> v = {1, 2, 3};
foobar(gsl::as_span(v));
以上不编译。显然gsl::as_span()
返回一个gsl::span<float>
. 除了不理解为什么不可能隐式转换之外gsl::span<const float>
,还有没有办法强制gsl::as_span()
返回只读跨度?