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

Tom*_*ton 1 c++ c++20 std-ranges

我想要具有接受任何固定类型容器的功能。例如,一个函数将接受std::array<float,1>std::array<float,2>

我认为这在范围内是可能的,但我意识到我的理解非常肤浅。

我可以不使用模板吗?


编辑:我们可以使用范围库定义一个类型,该类型将执行与跨度相同的操作,但适用于非连续容器?也许我没有正确表达我的问题,我可能指的是视图而不是容器。

Jar*_*d42 5

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

void foo(std::span<float>)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)