使用范围/视图而不是模板的通用编程?

2022-05-17 00:00:00 c++ c++20 std-ranges

我希望有接受任何固定类型容器的函数。例如,将同时接受std::array<float,1>std::array<float,2>的函数。

我原以为使用Range可以做到这一点,但我意识到我的理解相当肤浅。

是否可以在没有模板的情况下实现?


编辑:我们是否可以使用范围库来定义一个类型,该范围库将执行与SPAN相同的操作,但将用于非连续容器?也许我的问题表达得不对,我的意思可能是视野而不是容器。


解决方案

对于连续范围,您可以使用std::span(C++20):

void foo(std::span<float>)
{
// ...
}

相关文章